基本操作
source /home/wxx/桌面/design/learn/bin/activate 激活
deactivate//退出
//开启一个项目
django-admin startproject xxx
//创建一个应用
python manage.py App
$ ps aux | grep -i manage
然后只需运行
$ kill -9
快捷键
- control + p
- 参数提示
迁移数据
- 生成迁移:python manager.py makemigrations
- 执行迁移:python manager.py migrate
实现一个请求
- 注册一个请求
- urls中
- url
- 参数 匹配到正则
- 视图函数
- 对应的是views中的一个函数
- 没有括号
- url
- urls中
- 去views实现对应的视图函数
- 第一个参数是request
- 永远记得返回Response
模板配置
- 两种
- 在App中进行模板的配置
- 只需要在App的根目录中创建templates文件夹即可
- 如果想让代码自动提示,我们一个标记文件夹文模板文件夹
- 在项目目录中进行模板配置
- 需要在项目目录中创建templates文件夹并标记
- 需要在setting中进行注册
- 在开发中使用第二种
- 模板可以继承,复用
- 在App中进行模板的配置
路由优化配置
- 项目如果逻辑过于复杂,可以进行拆分
- 拆分为多个App
- 继续拆分路由器urls
- 在App中创建自己的urls
- urlpatterns 路由规则李表
- 在根路由urls中进行路由规则列表
- 子路由的使用
-根路由规则 + 子路由的规则
models使用了ORM技术
-
Object Relational Mapping 对象关系映射
-
将业务逻辑和SQL进行解耦合
- object.save()
- object.delete()
-
关系型数据库
- DDL
- 通过models定义实现,数据库表的定义
-
数据操作
- 增删改查
- 存储
- save()
- 查询
- 查所有 objects.all()
- 查单个 objects.get(pk=xx)
- 更新
- 基于查询的
- 查好的对象,修改属性,然后save()
- 删除
- 基于查询
- 调用 delete()
root设置密码
- use mysql;
- update user set authentication_string=password("123456") where user="root";
- flush privileges;
- mysql -u root -p123456
- https://www.cnblogs.com/Hannibal-2018/p/11182694.html
连接mysql的驱动
- mysqlclient
- python2,3都能直接使用
- 致命的缺点:对mysql安装有需求,必须制定位置存在配置文件
- python-mysql
- 对python2 支持的很好
- 对python3 不支持
- pymysql
- python2,3 都支持
- 它还可以伪装成前面的库