## 1 登录功能,连接mysql
### 路由
```python
url(r'^login', views2.login),
url(r'^index', views2.index),
url(r'^test', views.test),
```
### 视图函数
```python
def index(request):
return render(request, 'index2.html')
def login(request):
if request.method == 'GET':
return render(request, 'login.html')
else:
name = request.POST.get('name')
password = request.POST.get('password')
# 创建一个数据库链接
conn = pymysql.connect(host='127.0.0.1', user='root', password='123', database='userinfo', port=3306, )
# 拿到一个游标
cursor = conn.cursor()
# 执行sql
cursor.execute('select * from user where name=%s and password=%s ', (name, password))
# 获取结果
ret = cursor.fetchone()
print(ret)
if ret:
return redirect('/index')
else:
return HttpResponse('用户名或密码错误')
```
## 2 MTV与MVC
```python
1 django 是MTV架构,本质也是mvc
-M:model,数据库相关操作
-T:template,模板文件(就是mvc的v层)
-V:view,视图(路由+V=MVC的控制器)
2 MVC架构:主流的web框架都是mvc
-Web应用分为模型(M),控制器(C)和视图(V)
-M:model,数据库相关操作
-C:controler控制器,逻辑相关,逻辑代码
-V:视图,模板文件
3 详情看博客图
```
## 3 django请求生命周期
```python
0 近几年python中的几个web框架,sanic,fastapi(异步框架)
1 python中的web服务器都符合wsgi协议
2 web服务器,任何语言都会有一个web服务器,负责把http请求转成这门语言的变量
-python:wsgiref(性能很低),uwsgi(C语言写的),200多并发量
-java:tomcat,jboss(300多并发了)
-php:php服务器
```

## 4 虚拟环境讲解,pycharm配置
```python
1 虚拟环境作用:隔离项目,每个项目有自己依赖的模块和包,不同模块和包的版本就不会相互影响
2 pycharm中配置虚拟环境
```

## 5 orm概述
```python
1 orm:对象关系映射(跟语言无关)
数据库中的表 ----》对应程序的一个类
数据库中的一行数据----》对应程序中的一个对象
2 python中常见orm框架
-django的orm框架
-sqlachemy orm框架
3 java:(扩展),java中写web项目
ssh框架 :spring+struts(有漏洞)+hibernate(orm框架) (我的那个年代)
ssm框架:spring+springmvc+mybatis(orm框架,可以写原生sql)
springboot:sb框架 ,tomcat内置进去了
springcloud:微服务
4 orm能干的事
-创建表(不能创建数据库,手动创建数据库)
-增加删除表内字段
-增删查改数据
```
## 6 pycharm连接sqlite/mysql
## 7 django中orm的使用
```python
0 sqlite:也是要给数据库,文件数据库,一个库就是要给文件,不需要单独安装
-咱们现在在用,也要用到关系型数据库,不想装mysql,就可以使用sqlite
-移动开发本地存储数据,存在sqlite中
1 创建个UserInfo表,在models中写一个类
2 表中有字段(类属性),字段有属性,
# 第一步在models中写一个类
class UserInfo(models.Model):
# 字段属性--》后面那个对象决定的,
# 改字段自增,并且是主键
id = models.AutoField(primary_key=True)
# 改字段是varchar类型,长度为32(唯一约束,是否是索引,默认值是,是否可以为空)
name = models.CharField(max_length=32)
# 密码字段
password =models.CharField(max_length=64)
# 第二步,把表创建出来(执行两个命令)
-python3 manage.py makemigrations # 这条命令会在migrations创建一条记录,数据库变更记录
-python3 manage.py migrate # 把更改同步到数据库
```
## 8 用户注册登录展示小案例
```python
详情见代码
```