1.数据库模型设计错误迁移后删除报错No changes detected问题
python manage.py makemigrations --empty myApp
python manage.py makemigrations
python manage.py migrate
分析:可能文件夹下有些依赖,直接delete会报错,需要先创建个空的模型
2.model的ForeignKey写法问题
("chanpin_renzheng", on_delete=models.CASCADE)
分析:注意引号,加上on_delete
3.在上面link CSS 在下面引 js
4.summernote富文本编辑器和bootstrap一起使用
5.https://www.iconfont.cn 阿里矢量图标的使用
6.swiper的动画插件使用
注:HTML CSS JS里面都要写东西具体右键查看源码
7.runserver后面可以自己设置端口
8.配置路由settings里面配置
ROOT_URLCONF = 'mysite.urls'
9.登陆的表单
<form action="" method="get">
<input type="text" name="username" placeholder="username"><br>
<input type="password" name="password" placeholder="password"><br>
<button id="btn" type="submit">登录</button>
{% csrf_token %}
</form>
如果是post提交会报CSRF错误
需要加上{% csrf_token %}
通过测试工具可以看见发送post请求的同时除了username和password还多了一个token(一个秘钥的散列值)如果想忽略该检查要将settings中间件里面的东西注释掉
10.action来指定路由的路径,urls里面配置
11.windows下的conf文件也可以用vim打开
12.链接redis
redis-cli
13.windows下启动redis
redis-server redis.windows.conf
14.https://blog.csdn.net/blick__winkel/article/details/77986481 redis的基本使用
15.注意看报错,如果说在url都没匹配注意是正则表达式/的问题
16.重定向也是通过路由实现的
17.序列化的写法
return JsonResponse(b, safe=False)
18.Django中的auth表用户登录的验证
19.render和重定向的路由写法不一样,要注意下
20.cookie的用法,每个参数的含义
res.set_cookie("user", username, 3600) # 写入浏览器cookie的名,用户在登录页输入的用户名,cookie在浏览器中保持的时间
21.读取cookie在浏览器可以查看的
username = request.COOKIES.get("user", "") # 读取浏览器的cookie
22.时间字段的写法要注意
create_time = models.DateTimeField(auto_now=True) # 自动获取当前时间,时间戳的概念
23.邮箱字段的写法
email = models.EmailField() # 邮箱
URLField TextField FloatField
24.在后台注册表的信息
25.delete()删除数据 不用save就可以删除
26.修改需要save
g = Students.objects.get(username=789)
g.username = "123" # 对数据库的修改操作 不写脚本也可以进行再代码里修改 需要save
g.save()
27.create()添加数据
28.django-bootstrap3的集成加持,也是需要在app里安装注册
29.分页器:Paginator(xxx,2)几条数据一分页
30.
单元测试:unittest
HTTP接口自动化测试:unittest+Requests
Web UI自动化测试:unittest+Selenium
移动自动化测试:unittest+Appium
31.单元测试
from django.test import TestCase
from myAPP.models import Students
class ModelTest(TestCase):
def setUp(self) -> None:
Students.objects.create(username="cuiheran", password="cui",
name="cui", gender=1, age=20, contend="ffs", isDelete=1, user_type=1)
def test_Students_models(self):
result = Students.objects.get(name="cui")
self.assertEqual(result.username, "cuiheran")
32.可以进行指定函数的测试更加节省时间 还可以进行模糊匹配测试
python manage.py test -p test*.py