学习目标
Flask框架的0基础学习过程记录。(是真的小白!没接触过web开发!)
遗留问题
为了以后方便补坑,将暂时理解不清楚的概念名词放到这里方便以后有时间补坑。
HTML基础语法
因为没接触过web开发对HTML了解仅限于JAVA大作业 = =。
首先要明白HTML的标签大部分都是对称的,少部分是但标签
遇到过的:
<hr>
:类似于markdown的分割线(这个就是单标签)
<p></p>
: 表示这个段落
<br>
:换行
URL
统一资源定位符(Uniform Resource Locator)”简称为URL
互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎处理它。说人话就是网址。
路由和视图函数
- 在Web开发过程中,经常会遇到『路由』的概念。简单来说,路由就是URL到函数的映射。
- 客户端(例如Web浏览器)把请求发送给Web服务器,Web服务器再把请求发送给Flask程序实例。程序实例需要知道对每个URL请求运行哪些代码,所以保存了一个URL到python函数的映射关系。处理URL和函数之间关系的程序称为路由。(写的太好了)
—>参考资料
python中@装饰器
POST和GET请求方式
学习内容
主要学习了:
1.vscode中建立python虚拟环境的创建和激活
2 .vscode中怎么在虚拟环境中安装指定的python第三方包(package)
3.Flask框架的安装
4.Flask框架中 jinja2模板使用
5.Web开发一般流程
为了方便本小白不半途而废,所有的操作都是基于vscode+Windows10。
1.vscode中建立python虚拟环境
可以安装virtualenv
包来创建虚拟环境,不过现在新的python好像已经可以实现创建虚拟环境的功能了。
下面是直接创建:
在vscode终端中直接输入:
python -m venv venv_test
创建一个名为venv_test
的虚拟环境
在创建虚拟环境成功后 vscode会自动提示你把python解释器换成虚拟环境中的python解释器,但是如果不小心取消了,可以按ctrl+shift+p
呼出快捷菜单输入select python interpreter
定位到新创建的虚拟环境的python解释器。至此全局python解释器被替换。
2.vscode中激活虚拟环境
创建虚拟环境成功后,即使替换了解释器但是其实其虚拟环境并没有被激活,在终端中表现为:
激活需要运行虚拟环境中Scripts
文件夹中的activate.ps1
命令,这是一个power shell
命令,在vscode资源管理器双击这个文件会弹出让你安装powershell终端,如果没有可以自己手动安装,在该终端下运行
activate.ps1
则可激活创建的虚拟环境。
有小括号显示激活成功!
2022.6.10更新
突然发现,创建完虚拟环境后
双击:
会自动切换到虚拟环境
3.vscode在指定虚拟环境中安装第三方包
可能跟个人环境有关系,别人激活虚拟环境后直接pip就能安装到当前虚拟环境,我的则是默认调用的是我D盘的全局python里面的pip只能安装到全局。我猜是环境变量搞的鬼(懒得研究)。
解决方法
又可以直接pip了= =搞不懂。总之这个解决了,但是要格外小心有可能包安装错地方。
4.新虚拟环境中安装原环境指定版本号的包
大致就是在某项目部署好了需要的依赖包,但是换台电脑我还想配置相同的环境一个个需求包下载太慢了。可以把原环境需要的包导出一个txt文件涵盖了所有依赖包,然后新环境直接利用命令安装。
1.原环境的第三方包目录导出:
在vscode终端输入命令:pip freeze > requirements.txt
,会在当前虚拟环境路径下生成一个txt文件,涵盖了原环境的包以及版本号的列表。
2.将原环境生成的requirements.txt
放到新环境目录下,在vscode的python终端输入pip install -r requirements.txt
安装,网速如果太慢可以添加
-i https://pypi.tuna.tsinghua.edu.cn/simple/
换国内的清华源。
学习参考视频
链接:link
5.flask报错解决
运行Flask的helloworld 代码报错:
WARNING: This is a development server. Do not use it in a production deployment.
搜索得到:
Flask 的默认服务器是在开发环境中使用的,仅供开发测试。Flask配置环境默认为生产环境,所以才会报该错误。如果项目开发完成,想投入生产,那么就要换一个生产级的 WSGI 服务器了。
链接: 这里
解决:
from flask import Flask
app = Flask(__name__)
app.config['ENV'] = 'development'# 添加这一句!!!将环境设置为开发环境
@app.route("/")
def hello_world():
return "<p>Hello, World!</p>"
if __name__ == '__main__':
app.run(debug=True, host='127.0.0.1', port='5000')
6.vscode新建HTML文件
vscode创建出html文件的时候是空白的,如果想自动生成模板,可以在第一行键入!
再按下Tab自动补全。
补全呈现出的效果:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>Hellow HTML<h1>
<