1、django环境
2、创建项目和应用
在D盘新建文件夹pydj,然后cmd进入命令行
新建项目guest:
D:\pydj>django-admin startproject guest
新建应用sign:
D:\pydj\guest>python manage.py startapp sign
3、运行项目
D:\pydj\guest>python manage.py runserver
4、在setting.py中配置应用
在guest/setteing.py中INSTALLED_APPS=[]中添加应用,配置模块应用
5、配置要访问的URL路径
在guest/urls.py中urlpatterns=[]中配置要访问的URL路径
6、在views.py中编写控制前端输出的函数
7、django工作流程
1)用户在浏览器地址栏输入URL
2)django拿到浏览器URL后,取得端口后后面的路径“/index”,在guest/urls.py文件中匹配,即urlpattern列表中
3)匹配完成后,调用相应函数(views.py中的index视图函数)处理数据
4)视图层返回的数据由templates模板层展示,即HTML页面
8、开发模式
MVC(Model-View-Controller)模式:
Model 代表数据存取层-----------由django数据库层处理,
View 代表的是系统中选择显示什么和怎么显示的部分,Controller 指的是系统中根据用户输入并视需要访问模型,以决定使用哪个视图的那部分------------由视图和模板处理
Controller ,根据用户输入委派视图的部分,由Django 框架根据URLconf 设置,对给定URL 调用适当的Python 函数。
因为Controller由框架处理,django更关注是模型(Model),模板(Template)、视图(views),也被称为MTV开发模式:
M 代表模型(Model),即数据存取层。该层处理与数据相关的所有事务: 如何存取、如何验证有效
T 代表模板(Template),即表现层。该层处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。
V 代表视图(View),即业务逻辑层。该层包含存取模型及调取恰当模板的相关逻辑。你可以把它看作模型与模板之间的桥梁。
django视图
9、get请求和post请求
get请求会将用户提交的数据添加到URL地址中,路径后面跟?username 和password 为HTML 代码中标签的name 属性值,username=admin 表示用户名输入框得到的输入数据为“admin”。password=admin123 密码输入框得到的输入数据为“admin123”。多个参数之间用“&”符号隔开。
post请求的数据会放在http包的包体中
“跨站请求伪造”( Cross-Site Request Forgery, CSRF)漏洞
在from 表单中添加{% csrf_token %}
10、render()函数
{{error}}用法
类HttpResponseRedirect,对路径进行重定向,从而使得登录成功后页面跳转
render与HttpResponseRedirect的区别是,当使用render转发时,他不会修改url,只是替换页面,所以适合定向到对应的页面中去,常规操作适合,简单,但是不适合转发,不改变url让人很难适应
11、cookie和session
cookie存储在客户端(浏览器)
存储cookie:
response = HttpResponseRedirect('./event_manage')
response.set_cookie('user',username,3600)
user---存入浏览器的cookie名字
username---用户在登录页上输入的名字
3600-----cookie在浏览器中停留的时间
读取cookie:
username = request.COOKIES.get('user','')
return render(request,"event_manage.html",{"user":username})
session存储在服务器端
存储session:
request.session['user']=username
读取session:
username=request.session.get('user','')
12、django认证系统
命令行创建超级用户:
使用django认证登录
使用authenticate()函数认证给出的用户名和密码。它接受两个参数,用户名username 和密码password,并在用户名密码正确的情况下返回一个user 对象。如果用户名密码不正确,则authenticate()返回None。
通过if 语句判断authenticate()返回如果不为None,说明用户认证通过。那么接下来调用login()函数进行登录。login()函数接收HttpRequest 对象和一个user 对象。
@login_required必须登录才能访问
django模型
1、设计系统表
Django 提供完善的模型(model)层主要用来创建和存取数据,不需要我们直接对数据库操作。
Django 模型基础知识:
每个模型是一个Python 类,继承django.db.models.model 类。
该模型的每个属性表示一个数据库表字段。
guest/model.py
发布会表
嘉宾表
migration和makemigration的区别:
在你改动了 model.py的内容之后执行下面的命令:
python manger.py makemigrations
相当于 在该app下建立 migrations目录,并记录下你所有的关于modes.py的改动,比如0001_initial.py, 但是这个改动还没有作用到数据库文件你可以手动打开这个文件,看看里面是什么
在此之后执行命令
python manager.py migrate
将该改动作用到数据库文件,比如产生table之类
2、admin管理后台
3、基本数据访问
from sign.models import Event,Guest
导入sign应用下models.py中的Event表和Guest表
table.objects.all()
获得table(Event、Guest表)中的所有对象
table.objects.create()插入数据
table.objects.get()查询数据
从数据库表中取得一条匹配的结果,返回一个对象,如果记录不存在的话,那么它会报DoesNotExist 类型错误。
table.objects.filter()查询数据
从数据库中取得的结果是一个对象列表,如果记录不存在,返回[]
name__contains相当于like
g1.delete()删除数据
更新数据
4、MySQL
查看数据库---show database
切换库---------use database
查看表---------show tables
网友评论