网站后台被挂木马,大名网站建设费用,常用的网页有哪些,开发程序的过程主要步骤1.创建工程
如果pycharm是专业版#xff0c;直接NewProject—Flask 填写工程name和location后#xff0c;点击右下角【create】#xff0c;就会新建一个flask工程#xff0c;工程里默认会建好一个templates文件夹、static文件夹、一个app.py文件
templates#xff1…1.创建工程
如果pycharm是专业版直接NewProject—Flask 填写工程name和location后点击右下角【create】就会新建一个flask工程工程里默认会建好一个templates文件夹、static文件夹、一个app.py文件
templates存放html模板
static存放不动态更改的文件比如图片
app.py启动入口 其中app.py中自动生成下面的代码
from flask import Flask
创建一个名为app的Flask实列参数为当前模块名或者当前包名。表示使用当前模块名或者包名来确定应用程序的根目录app Flask(__name__)
路由函数app.route(/)
def hello_world(): # put applications code herereturn Hello World!
main函数启动入口if __name__ __main__:app.run()
如果Pycharm是非专业版可以建普通工程后手动新建templates文件夹、static文件夹、app.py文件。
2.启动工程
方法一右上角启动工程 方法二直接运行app.py文件 当出现 http://127.0.0.1:5000工程就启动成功了
工程启动后就会一直监听5000端口监听到HTTP 请求后封装为 Request 对象然后匹配路由接口如匹配到执行视图函数匹配不到返回404。
3.app.route视图函数开发
3.1 静态url
url路径是固定字符串必须参数rule非必须参数methodshttp请求类型默认为get也可以是post或者get和post同时支持
举例
测试 3.2 动态url
url路径是一个动态值必须参数rule非必须参数methods
举例 测试 3.3.请求参数处理
导入模块from flask import request
flask框架的request是用来存储http请求带过来的协议信息和参数的
查询参数以字典的形式存储在args里面 KV的表单参数以字典的形式存储在form中 参数为Json以字典的形式存储在Json里 JSON里包含json以字典的形式存储在Json里 request里的其他信息
files记录了请求上传的文件返回类似于字典的数据
method记录了请求使用的HTTP方法
url记录了请求中的URL地址
host记录了请求的域名
headers记录了请求的请求头信息返回类似于字典的数据
3.4 返回
返回普通字符、数值
app.route视图函数 web调用测试 返回html页面一般用于前后端不分离的场景
第一步先创建html页面在工程的templates文件夹下新建html页面 Flask框架里面支持前端模板语言jinja2模板这个模板支持读取python变量
第二步编写html
语法
变量用{{}}
分支判断
循环支持 注释 举例
html
app.route视图函数
from flask import Flask, render_templateapp.route(/login/with/html)
def login_with_html():tuple(1,2,3,4,5,6)dict{name:testtesttest003,id:2987654}return render_template(demo.html,name测试测试测试测试测试,age19,tupletuple,dictdict)
web调用测试 返回json一般用于前后端分离的场景前端用vuenodejs
app.route视图函数
from flask import Flask, jsonifyapp.route(/login/test/json)
def login_getjson():return jsonify({code:200,data:{message:Request successful}})
web调用测试 4.Flask和Django的比较
维度FlaskDjango路由系统由装饰器 app.route 显式定义在urls.py 中管理通过正则表达式匹配项目结构结构单一轻量灵活结构严格约定灵活性高可自由组合扩展低需遵循框架设计性能轻量适合高并发微服务较重但优化后性能足够应对多数场景开发速度前期快需求越复杂后期自行集成扩展慢有很多内置工具减少重复开发前期慢后期快ORM无内置需自行扩展内置 ORM支持数据库迁移和关系映射学习难度简单易上手需要学习的内容较多需学习整套约定适用场景适合小型应用、微服务适合大型企业级应用、多人协作快速原型开发