Flask第一天

第一步先建一个virtualenv。

由于我的机器是有多版本的python,所有我要进入到相应的virtrualenv的目录下面去,建立env环境。

cd c:\Python36\Scripts
virtualenv.exe D:\virtualenv\Flask
D:\virtualenv\Flask\Scripts\activate.bat

在virtualenv中安装Flask模块

pip install Flask

使用pycharm创建一个Flask项目

使用pycharm创建Flask项目非常简单,如图操作:


Flask第一天_第1张图片
Paste_Image.png

完成之后就是如图所示

Flask第一天_第2张图片
Paste_Image.png

进入Debug模式

app.run(debug=True)

debug模式可以在不重启服务的情况下对页面进行调试,静态页面开发的时候应该会经常用到

导入模板

from flask import Flask,render_template

@app.route('/')
def hello_world():
    return render_template('index.html',title='

Welcome!

')

这样就可以指向模板了,之后title作为向模板传递的参数

添加两个页面,且在主页中添加超链接

demo01.py

@app.route('/services')
def services():
    return 'Services'

@app.route('/about')
def about():
    return 'About'

index.html


    

{{ title }}

services about

路由器转换器

@app.route('/user/')
def user(user_id):
    return 'User %d' % user_id

int -整型
float-浮点数
path-路径

仔细观察以下代码,Flask设计很友好

@app.route('/projects/')
@app.route('/our-work/')
def projects():
    return 'The projects page'

官方解释是这个:

 规范的 URL 指向 projects 尾端有一个斜线。 这种感觉很像在文件系统中的文件夹。访问一个结尾不带斜线的 URL 会被 Flask 重定向到带斜线的规范URL去。
  当用户访问页面时忘记结尾斜线时,这个行为允许关联的 URL 继续工作, 并且与 Apache 和其它的服务器的行为一致。另外,URL 会保持唯一,有助于避免搜索引擎索引同一个页面两次。

故在项目中都采用带'/'模式。

为什么构建 URLs 而不是在模版中硬编码?

这里有三个好的理由:
反向构建通常比硬编码更具备描述性。更重要的是,它允许你一次性修改 URL, 而不是到处找 URL 修改。
构建 URL 能够显式地处理特殊字符和 Unicode 转义,因此你不必去处理这些。
如果你的应用不在 URL 根目录下(比如,在 /myapplication而不在 /), url_for()将会适当地替你处理好。

Flask 请求上下文与响应make_response

make_response可以定制response的高级内容,例如cookie

from flask import make_response
@app.route('/')
def hello_world():
    response = make_response(render_template('index.html', title='Welcome!'))
    response.set_cookie('username','')
    return response

Flask-Script,livereload模块使用

Flask-Script 项目重构的时候经常用到
livereload 没啥用,就是写静态文件的时候方便一点,自动刷新,不过好像要加一个chrome插件,没配成功,懒得弄。

你可能感兴趣的:(Flask第一天)