day61

## 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服务器
    
```

![image-20200928113045288](.\django-day03.assets\image-20200928113045288.png)

## 4 虚拟环境讲解,pycharm配置

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

![image-20200928114918309](./django-day03.assets\image-20200928114918309.png)

## 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
详情见代码

```

 

posted @ 2020-10-07 21:33  板鸭没有腿  阅读(75)  评论(0)    收藏  举报