Python_14_20200607
变更履历
日期 | 版本 | 内容 | 作者 | 备注 |
---|---|---|---|---|
2020/06/07 | v1.00 | 初版做成 | author | 跳过前端基础 |
Django
前提
# -*- coding:utf-8 -*-
from wsgiref.simple_server import make_server
def RunServer(environ, start_response):
start_response('200 OK',[('Content-Type','text/html')])
return ['<h1>Hello,web!</h1>'.encode('utf-8'),]
if __name__ =='__main__':
httpd =make_server('',8000,RunServer)
print ("Serveing HTTP on port 8000...")
httpd.serve_forever()
MVC
Model 数据库操作
View 视图模板
Controller 业务处理
MTV
Model 数据库操作
Template 模板文件
View 业务处理
Django是一种MTV的web框架
安装
pip install django
cd C:…\Python\Python35\Scripts
有django-admin.exe的可执行文件
django-admin.exe startproject name
cd C:…\Python\Python35\Scripts\name
python manage.py runserver 127.0.0.1:8000
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
June 07, 2020 - 21:41:19
Django version 2.2.13, using settings 'name.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
目录结构
mysite
-mysite #对整个程序配置
-init
-settings #配置文件
-url #URL对应关系
-wsgi #遵循WSGI规范,uwsgi+nginx
-manger.py #管理程序
创建app
python manage.py startapp name
app:
migrations #数据修改表结构
admin #Django提供的后台管理
apps #配置当前app
models #ORM
tests #单元测试
view #业务逻辑代码
其他
setting
配置模板路径 *.html
os.path.join(BASE_DIR,“templates”),
配置静态目录 *.css
STATICFILE_DIRS=(
os.path.join(BASE_DIR,“static”),)
CSRF
跨站请求伪造?
获取数据
提交操作时的请求方式 request.method:Post/Get
获取请求内容request.POST.get(‘user’,None)
获取请求内容request.GET.get(‘user’,None)
返回数据
redirect(‘www.baidu.com’)(’/login’)
render(request,‘login.html’)
HttpResponse(html<>)
表示数据
render(request,‘login.html’,{
‘user’:“username”,
‘user_list’:[‘1’,‘2’,‘3’],
‘user_dict’:[’‘k1’:‘v1’,‘k2’:‘v2’]},)
<div>{{user}}</div>
<ul>
{% for row in user_list%}
<li>{{row}}</li>
{% endfor %}
</ul>
<a>user_dict.k1</a>
{% if user_list.1 > 2 %}
<a>1</a>
{% else user_list.1 = 1 %}
<a>2</a>
{% endif %}