Django
django-admin startproject 项目名
python manage.py startapp 应用名
使用模型(ORM)
model: model.CharField()(根据类型使用不同属性)(定义模型类)
python manage.py makemigrations 生成迁移文件
python manage.py migrate 生成数据库表文件
简单表创建
对数据操作
创建book=BookInfo(对应到模型中的model类)
赋值book.*-
提交book.save()
修改:book=BookInfo.objects.get(id=***)
book.***=***
book.save()
删除:book.delete()
查询:BookInfo.objects.get(id=id).heroInfo.object.all() [heroInfo 切记小写]
注意配置问题:
项目引入:
添加HTML文件位置:
配置数据库:
配置后台管理语言,时间:
配置路由:
配置前台路由:(url 第一个单数为正则表达式,第二个为视图)
视图配置:
前台接收并展示:
详细视频可参考:http://yun.itheima.com/course/257.html
自己遇到的问题:
TypeError: init() missing 1 required positional argument: ‘on_delete’
django2.0之后外间原因:
在django2.0后,定义外键和一对一关系的时候需要加on_delete选项,此参数为了避免两个表里的数据不一致问题,不然会报错:
herobook=models.ForeignKey(‘BookInfo’,on_delete=models.CASCADE,)
即在外键值的后面加上 on_delete=models.CASCADE
ModuleNotFoundError: No module named ‘models’
from .models import * model前加.
pycharm显示无法引用到的这些类,即使这些类都在工程中,看看文件上方的import会发现对应的模块import不成功。
相对路径
:在pycharm中设置source路径
?file–>setting(或者ctrl+alt+s)–>project structure
?将放package的文件夹设置为source,
这样import的模块类等,就是通过这些source文件夹作为根路径来查找,也就是在这些source文件夹中查找import的东西。
绝对路径:
from …package import *
第一个.表示当前目录,后面的每一个’.’表示上一层目录。用相对目录可以保证import成功
,但是不建议这种写法,因为如果当前这个文件要移动到其他包的话,就要改很多地方了。