Day 02 Django登录功能介绍
1、登录功能,链接MySQL
路由urls
urlpatterns = [
url(r'admin/', admin.site.urls),
url(r'index/', views.index),
url(r'signup/', views.signup),
url(r'signin/', views.signin)
]
视图函数views
def signup(request):
if requests.method == 'GET':
return redirect('/index') # 必须是已经存在在路由中的函数
else:
name = request.POST.get('name')
password = request.POST.get('password')
2 MTV和MVC
1 django是MTV架构,本质也是MVC
-M:model,数据库相关操作
-T:template,模版文件(就是MVC中的V)
-V:view,视图(路由+V=MVC中的C)
2 MVC架构:主流的web框架都是MVC
-web应用分为模型(M),视图(V)和控制器(C)
-M:model,数据库相关操作
-C:controler 控制器,逻辑相关,逻辑代码
-V:view 视图
3 详情:
https://www.cnblogs.com/liuqingzheng/p/13725794.html
1234567891011
3 Django请求生命周期
0 近几年python中的几个web框架,sanic,fastapi(异步框架)
1 python中的web服务器都符合wsgi协议
2 web服务器,任何语言都会有一个web服务器,负责把http请求转成这门语言的变量
-python:wsgiref(性能很低),uwsgi(c语言写的,200多并发量)
-java:tomcat,jboss(300多并发量)
-php:php服务器
3 请求生命周期图解:
12345678910
4 虚拟环境讲解,pycharm配置
1 虚拟环境作业:隔离环境,每个项目有自己依赖的模块和包,不同模块和包的版本 就不会相互影响
2 a路径、b基于哪个解释器、c是否继承基础解释器的模块、d是否可以被其他项目 使用
12
5 orm概述
1 orm:对象关系映射(跟语言无关)
数据库中的表-------->对应程序的一个类
数据库中的一行数据--->对应程序中的一个对象
2 python中常见orm框架
-django的orm框架
-sqlachemy orm框架
3 java,java中写web的项目:
-ssh框架:spring+structs(有漏洞)+hibernate(orm框架)
-ssm框架:spring+springMVC+mybatis(orm框架,可以写原生sql)
-sb框架:springboot,内置tomcat(现在主流)
-springcloud:微服务(现在主流)
4 orm能干的事
-创建表(不能创建数据库,手动创建数据库)
-增加删除表内字段
-增删查改数据
12345678910111213141516171819
7django中orm的使用
0 sqlite:也是个数据库,文件数据库,一个库就是一个文件,不需要单独安装
-现在就在用,也要用到关系数据库,不需要连数据库,
-移动开发本地存储数据,存在sqlite中
1 创建个UserInfo表,在model中写一个类
2 表中有字段(类属性),字段有属性,
第一步在models中要写类:
class UserInfo(models.Model):
# 字段属性-->后面那个对象决定的
# id字段自增,并且是主键
id = models.AutoField(primary_key=True)
# 名字字段是varchar类型,长度为32(唯一约束,是否是索引,默认值是,是否可为空)
name = models.CharField(max_length=32)
# 密码字段
password = models.CharField(max_length=64)
第二步,把表创建出来(执行两个命令):
python manage.py makemigrations
python manage.py migrate
123456789101112131415161718192021
8 用户注册,展示案例
1 在models.py中写一个UserInfo类, 一定要继承models.Models, 然后用命令创建表.
2 tempates下创建register.html, 提交的form表单里面要有UserInfo中需要的字段.
3 在urls.py中添加路由: url(^register,“views.register”), url(^userlist,“views.user_list”)
4 在views.py中写register函数,用页面中得到的数据实例化一个user对象,返回 redirect(’/userlist’),跳转到查看用户列表页面
写user_list函数,用models.UserInfo.object.all()查询出所有用户数据,并替模版文件中内容, 返回render(request,‘userlist.html’, context={‘userlist’: userlist})
5 tempates下创建userlist.html, 遍历userlist中的数据并显示.