django笔记 OLD

来源:互联网 发布:数据库的特性 编辑:程序博客网 时间:2024/06/06 06:34
1.项目初始化
python> django-admin.exe startproject web04
web04> python.exe .\manage.py app01
web04> python.exe .\manage.py startapp app01

2. Model【模型】
※ 激活模型前需确认已添加APP
Model类:django.db.models.Model
检查【模型(即数据库)】配置更改情况
web04> python.exe .\manage.py makemigrations
应用Model
web04> python.exe .\manage.py migrate
检查制定模型
python manage.py makemigrations app01
※ 【sqlmigrate命令接收迁移文件的名字并返回它们的SQL语句】:
python manage.py sqlmigrate polls 0001
CharField(和它的派生类)需要max_length 参数来指定VARCHAR 数据库字段的大小。
主键:
id = models.AutoField(primary_key=True)


3. 创建超级用户
web05> python.exe .\manage.py createsuperuser

4. mysql信息
root
KNSRValAL3vm
192.243.119.142
端口
27963
数据库名称
db_stu

5. 使用数据库步骤
python.exe .\manage.py startapp app01
INSTALLED_APPS 添加APP
settings.py DATABASES配置数据库
models.py配置表结构
D:\python\web06\app01\admin.py
admin.site.register(models.Author)
web04> python.exe .\manage.py makemigrations
web04> python.exe .\manage.py migrate
python manage.py makemigrations app01


6. 数据库查找
PS D:\python\web06> python.exe .\manage.py shell
>>> from app01 import models
>>> models.Author.objects.all()
<QuerySet [<Author: <Laure Shang>>, <Author: <雯婕 尚>>]>
>>> a1 = models.Author.objects.last()
>>> a1.first_name
'雯婕'
>>> a1.first_name='璐璐'
>>> a1.save()
>>> models.Author.objects.all()
<QuerySet [<Author: <Laure Shang>>, <Author: <璐璐 尚>>]>
>>>

7. 数据库添加
>>> newa = models.Author(first_name='畅', last_name='刘',email='suck@163.com')
>>> newa.id
>>> newa.save()
>>> newa.id
3

>>> newb=models.Author.objects.create(first_name='Jesse',last_name='Pinkman',email='3341@qq.com')
>>> newb.id
4


8. 查找
>>> models.Author.objects.all()
<QuerySet [<Author: <Laure Shang>>, <Author: <璐璐 尚>>, <Author: <畅 刘>>, <Author: <Jesse Pinkman>>, <Author: <long chen>>, <Author: <nfs chen>
>]>
>>> models.Author.objects.filter(last_name__icontains='ch')
<QuerySet [<Author: <long chen>>, <Author: <nfs chen>>]>
>>>
模糊查找
>>> models.Author.objects.filter(last_name__contains='ch')
范围查找
>>> models.Author.objects.filter(id__range=[2, 4])
<QuerySet [<Author: <璐璐 尚>>, <Author: <畅 刘>>, <Author: <Jesse Pinkman>>]>

9. 修改update
>>> models.Author.objects.filter(id__range=[2, 4])
<QuerySet [<Author: <璐璐 尚>>, <Author: <畅 刘>>, <Author: <Jesse Pinkman>>]>
>>> models.Author.objects.filter(id=2).update(last_name='Jayson')
1
>>> models.Author.objects.filter(id__range=[2, 4])
<QuerySet [<Author: <璐璐 Jayson>>, <Author: <畅 刘>>, <Author: <Jesse Pinkman>>]>


10. 关联查询
>>> b = models.Book.objects.all()
<QuerySet [<Book: <黛安·冯芙丝汀宝 我想成为的女人>>, <Book: <人工智能(李开复谈AI如何重塑个人、商业与社会的未来图谱)>>, <Book: <不必把太多人请进
生命里>>]>
>>> b = models.Book.objects.last()
>>> b
<Book: <不必把太多人请进生命里>>
>>> b.authors
<django.db.models.fields.related_descriptors.create_forward_many_to_many_manager.<locals>.ManyRelatedManager object at 0x0000000004477E10>
>>> b.authors.select_related()
<QuerySet [<Author: <Jesse Pinkman>>, <Author: <long chen>>]>
>>>

11. 测试数据库连接
python manager.py shell
>>> from django.db import connection
>>> cursor = connection.cursor()

12. 验证模型有效性
web07> python.exe .\manage.py check

13. migrate验证
web07> python.exe .\manage.py makemigrations books
web07> python.exe .\manage.py sqlmigrate books 0001
web07> python.exe .\manage.py migrate

14. 查询所有元素
>>> from books.models import Publisher
>>> publisher_list = Publisher.objects.all()
>>> publisher_list
<QuerySet [<Publisher: | 作家出版社 沈阳|>, <Publisher: | 译林出版社 江苏|>, <Publisher: | 上海文艺出版社 上海|>]>

15. django模版详细
django时间模块
publication_date = models.DateField()

16. model字段命名
email = models.EmailField(blank=True, verbose_name='e-mail')

17. admin
纵向、横向多选
filter_vertical
filter_horizontal
原创粉丝点击