python flask 入门
1、入门案例。本质上还是一个socket
from flask import Flask,request
####
app=Flask(__name__)
app.debug=True ####配置路由
@app.route('/')
def login():
return "hello world"
####设置监听端口号
if __name__=='__main__':
app.run(host='127.0.0.1', port=8080)
app.config['Debug'] = True
2、flask 底层调用了wsgi 和 jinja2 煊染模板(html)。接受数据方式有post 和 get 方式。render_template负责返回
from __init__ import app
from flask import request ### 和之前用到的不一致
from flask import render_template
from model.modelapi import main_version @app.route('/login',methods=['GET', 'POST'])
def fun_login():
user = {'nickname': 'Miguel'} # fake user
if request.method=='GET': ####get 提交获取的数据方式
# data = request.args.to_dict() # post request.json ,request.args
name = request.args.get("name")
age = request.args.get("age")
# print(name)
return render_template("login.html", user=user)
elif request.method=='POST': ## post提交使用form 接受数据
data =request.form.to_dict() #
name =data['username']
passwd = data['passwd']
print(name)
print(passwd)
if name =='admin' and passwd=='123456':
return render_template("query.html", user=name) else:
return render_template("login.html", user=user)
else:
return "不支持的请求方法"
3、 flask jinja2 可以接收变量、字典,也可以使用循环 user={'nickname':"tests"}l
在html 中 变量使用{{ user }} 也可以使用if 等判断语句.
{ % if statement %} 结束条件为 {% endif%},
render_template("login.html", user=user)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
{% if user.nickname %}
<title>{{user.nickname}}</title>
{% else %}
<title>Welcome to xiajinqi</title> #如果没有传入参数,则显示welcome to microblog
{% endif %}
</head>
<body>
<form action="http://127.0.0.1:8080/login" method="post">
用户名:<input type="text" name="username"> <br>
密码:<input type="password" name="passwd"> <br>
<input type="submit" value="提交">
</form>
</body>
</html>
3、 fjinja2 中for 循环
列表:{% for i in list %} html {% endfor %}
字典:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<table border="1">
<tr><th>版本号</th></tr>
{% for i in resutl %}
<tr><td>{{ i }}</td></tr>
{% endfor %} </table>
</body>
</html>
{% for key, value in my_dict.iteritems() %}
<dt>{{ key|e }}</dt>
<dd>{{ value|e }}</dd>
{% endfor %}
参考文档:https://www.cnblogs.com/yanzi-meng/p/8342798.html
4、flask MTV 分层的原理
创建flask架构以后,会自动生成一个templates 文件。手工创建view(路由和函数) model(连接数据库等其他等)

新建一个__init__.py :
from flask import Flask
### 使用Flask架构
app = Flask(__name__)
app.debug='True' #### 引用view 也就是路由函数 将路由 信息迁移到views
from view.view import * ###第一个view 为view包。第二个view 是view.py #### ##将启动的端口服务迁移到harbor.py
##if __name__ == '__main__':
## __init__.app.run(host='127.0.0.1',port=8081)
harbor.py 需要引用同级别文件 中的某个变量 from 文件名 import 变量名字或者函数名字类名
from __init__ import app if __name__ == '__main__':
app.run(host='127.0.0.1',port=8080)view
view 也需要引用app.引用第一级别文件直接引用即可。引用同目录下的文件。包名.文件名即可
from __init__ import app
from flask import request
from flask import render_template
from model.modelapi import main_version @app.route('/login',methods=['GET', 'POST'])
def fun_login():
user = {'nickname': 'Miguel'} # fake user
if request.method=='GET':
# data = request.args.to_dict() # post request.json ,request.args
name = request.args.get("name")
age = request.args.get("age")
# print(name)
return render_template("login.html", user=user)
elif request.method=='POST':
data =request.form.to_dict() #
name =data['username']
passwd = data['passwd']
print(name)
print(passwd)
if name =='admin' and passwd=='123456':
return render_template("query.html", user=name)
至此我们实现了MTV分离
python flask 入门的更多相关文章
- Python Flask Web 框架入门
Python Flask 目录 本文主要借鉴 letiantian 的文章 http://www.letiantian.me/learn-flask/ 一.简介 二.安装 三.初始化Flask 四.获 ...
- 比我的脸还干的gan货——Python Flask Web 框架入门
Flask是一个轻量级的基于Python的web框架. 本文适合有一定HTML.Python.网络基础的同学阅读. 1. 简介 这份文档中的代码使用 Python 3 运行.是的,所以读者需要自己在电 ...
- Flask入门HelloWorld
Flask入门HelloWorld Flask官网:http://flask.pocoo.org/ Flask中文翻译:http://dormousehole.readthedocs.io/en/la ...
- Flask入门之Bootstrap介绍使用和Flask-Nav快速导航栏
一.Bootstrap Bootstrap,来自 Twitter,是目前最受欢迎的前端框架. Python中,同样可以使用Bootstrap. 1. 导入Bootstrap库 from flask_b ...
- Python从入门到精通系列文章总目录
Python最新全套课程(8月中旬开的课),共四个月.所有课件,项目源码,课后习题和答案都包括在内. 包括:Python实战项目引入.Python基础.爬虫基础.爬虫库.Scrapy爬虫框架.动态页面 ...
- Flask入门和快速上手
目录 Flask入门和快速上手 python三大主流框架对比 Flask安装 依赖 可选依赖 创建flask项目 flask最小应用--hello word 非法导入名称 调试模式 路由 唯一的 UR ...
- Python之入门篇1
一.安装python解释器 官网: https://www.python.org/downloads/windows/ 自行下载安装,添加环境变量 #测试安装是否成功 windows --> 运 ...
- Flask 入门一( flask 框架和 flask-script 库)
Flask 入门一( flask 框架 和 flask-script 库) 一.Flask框架: 1.简介 Flask是一个非常小的Python Web框架,被称为微型框架:只提供了一个稳健的核心,其 ...
- Flask入门 flask结构 url_for 重定向(一)
Flask入门(一) 1 安装虚拟环境Mac,linux sudo pip install virtualenv ubuntu系统 sudo apt-get install python-virt ...
随机推荐
- MySQL数据库索引介绍
一.什么是索引 索引是mysql数据库中的一种数据结构,就是一种数据的组织方式,这种数据结构又称为key 表中的一行行数据按照索引规定的结构组织成了一种树型结构,该树叫B+树 二.为何要用索引 优化查 ...
- shell脚本检查域名证书是否过期
最近公司的域名准备过期了,防止用户访问的时候出现异常,所以最近我们准备替换相关网站证书为最新的. (一般HTTPS证书有效期为1年,证书过期后或者该证书不是该域名的有效证书时,在浏览器中访问会出现如下 ...
- Component、PureComponent源码解析
1.什么是Component,PureComponent? 都是class方式定义的基类,两者没有什么大的区别,只是PureComponent内部使用shouldComponentUpdate(nex ...
- aidl的应用场景
支付宝 package com.tesy.alipay; import com.test.alipay.Iservice.Stub; import android.app.Service; impor ...
- Servlet核心内容
Servlet重要的四个生命周期方法 构造方法: 创建servlet对象的时候调用.默认情况下,第一次访问servlet的时候创建servlet对象只调用1次.证明servlet对象在tomcat是单 ...
- java中的成员变量和局部变量的区别
成员变量: 在类体里面定义的变量叫做成员变量: 如果在变量有static关键字修饰,就叫作静态变量或类变量: 如果该变量没有static关键字修饰,就叫作非静态变量或实例变量: 局部变量: 方法内定义 ...
- WJMZBMR(陈立杰)在成都赛区开幕式上的讲话
2013年10月19日 18:05:44 各位选手,各位教练,大家好,我是来自清华大学交叉信息学院的陈立杰,今天很荣幸站在这里代表全体参赛选手发言.对于我来说,这是我第一次正式参加ACM的比赛.不过我 ...
- python 异常捕捉总结
Process finished with exit code -1 错误 执行代码 pycharm2020.1中手动中断程序,可是却捕捉不了中断异常,并且输出Process finished wit ...
- linux_18
简述keepalived工作原理 编译安装haproxy 总结haproxy各调度算法的实现方式及其应用场景 使用haproxy的ACL实现基于文件后缀名的动静分离
- Solution -「ZJOI 2019」「洛谷 P5326」开关
\(\mathcal{Description}\) Link. 有 \(n\) 个开关,初始时所有开关的状态为 \(0\).给定开关的目标状态 \(s_1,s_2,\cdots,s_n\).每 ...