Python+Bottle+Sina SAE快速建立网站

优采云 发布时间: 2020-08-12 11:36

  Bottle是新生一代Python框架的代表,利用Bottle建立网站将非常简单。

  Sina SAE是国外较出名的云平台之一,十分适用于个人网站的开发或创业公司网站开发。

  下面将介绍假若通过Python+Bottle+Sina SAE快速搭建一个网站。

  1.注册Sina SAE帐号后,创建应用,选择Python应用。进入代码管理,创建代码版本,点击编辑代码,就能看到这样的界面:

  

  # encoding=utf8

import sae

#导入Bottle模块

from bottle import Bottle,route, run, template, request, response, post, get, static_file,debug

app=Bottle()

debug(True) #打开debug功能

@app.get('/')

def web_index():

return "Hello World"

application = sae.create_wsgi_app(app)

  将index.wsgi文件的代码换成以上的代码,就能实现一个最简单的网站。现在访问(XXXX是我们创建应用的时侯输入的二级域名),就能返回"Hello world”。

  @app.get('/')

  def web_index():

  return "Hello World"

  这段代码就是一个路由,其中get是HTTP访问方法,一般常用get和post;'/'是uri地址。

  @app修饰器下边须要一个函数的定义,当用户访问"/"uri时,服务器都会调用这个函数,并把函数return的结果返回给用户,函数可以返回字符串,返回网页(template),返回文件(static_file)等。

  2.return网页

  现在要制做一个返回登入页面的功能。

  在服务器的根目录创建一个views文件夹(文件名没有硬性规定的),并放置一个login.html文件

  login.html文件代码为

  

用户名:

密码:

  在index.wsgi文件加入代码:

  @app.get("/login")

def web_login():

return template("login")

  这是访问/login都会返回login.html这个网页

  3.return动态网页

  template功能非常强悍,可以动态地在html文件中插入参数,同时,html上面可以输入python代码来让参数的插入更灵活。

  例如我们"/logn"路由代码改成:

  @app.get("/login")

def web_login():

myList=["print me","no print me","print me"]

return template("login",myList=myList)

  将login.html的代码改成:

  

用户名:

密码:

% for item in myList:

%if item=="print me":

{{item}}

%end<br />     %end <br />  

  由于html文件不能辨识缩进,所以须要%end来标记一个for或if的结束。输出结果为

  

  网页承继:

  % rebase('nav_base.html')

  父网页要加入

  {{!base}}

  网页收录子网页

  % include('show_cols_include.html')

  设置参数的默认值

  % setdefault('cashier_id', '0')

  4.return文件

  在服务器的根目录创建一个images文件夹

  index.wsgi代码:

  @app.get("/images/:filename")

def file_images(filename):

return static_file(filename,root='images')

  这样,客户端就可以直接下载服务器的文件,例如网页中的图片,用到的CSS,JS文件等。

  5.return JSON

  在bottle,直接return字典类型的数据,就等于return JSON数据,如

  myDict={“name”:"kevin";"age":21}

return myDict

  6.获取恳求的参数

  很多的get恳求会附送一些参数,post恳求会有客户端发来的JSON,可以用以下代码来获取:

  name=request.params.get("name")

  "name"为参数名称

  7.设置或获取cookie

  设置cookie:

  response.set_cookie('username',"this is my username")

  获取cookie

  username=request.get_cookie("username")

  8.上传文件

  file_path = 'static/xls/{0}.xls'.format(str(int(time.time())))

filename=request.files.get('input_xls').filename() #获取文件名<br />request.files.get('input_xls').save(file_path) #保存文件

  上传文件一定要在html form 标签加入属性

  enctype ="multipart/form-data"

  构建一个自己的服务器和自己的网站就那么简单。

  暂时想到这么多,以后继续补充~~~~

  最后附上index.wsgi的全部代码:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线