Django二次学习

模型类设计和表生成

class BookInfo(models.Model):
    # 字符串类型
    btitle=models.CharField(max_length=20)
    # 日期类型
    bpub_date=models.DateField()

生成迁移文件命令:

python manage.py makemigrations

执行生成迁移文件命令:

python manage.py migrate

数据库更换mysql: https://blog.csdn.net/darling_user/article/details/100060873

通过模型类操作数据表

python manage.py shell 进入命令端

from booktest.models import BookInfo
from datetime import date
b=BookInfo()
b.btitle='天龙八部'
b.pub_date=date(1990,1,1)
b.save() //增
b.delete() //删
b2=BookInfo.objects.get(id=1)
b2.bpub_date=date(2000,1,1)
b2.save() //改
b2.bpub_date //

模型类关系和关系查询

# 图书与英雄 一对多的关系
hbook=models.ForeignKey('BookInfo',on_delete=models.CASCADE,)

BookInfo.objects.get(id=1)
BookInfo.objects.all()
b.heroinfo_set.all()
h=HeroInfo().objects.get(id=1)
h.hbook.btitle  //查询英雄所属的书籍名称

Django后台管理

1、本地化,修改时区和语言等
2、创建管理员

python manage.py createsuperuser

python manage.py runserver //启动服务
python manage.py runserver 127.0.0.1:8001 //指定端口号

3、注册模型类

admin.py下
admin.site.register(BookInfo)

4、自定义管理页面

admin.py下
class BookInfoAdmin(admin.ModelAdmin):
    list_display = ['id','btitle','bpub_date']
admin.site.register(BookInfo,BookInfoAdmin)

在后台管理实现增删改查

视图使用,即控制器

1、定义视图
2、进行url配置
3、url匹配过程
index与index2匹配的差异:全匹配

模板的使用

1、项目下新建templates文件夹(默认有了),并在settings.py配置
2、在templates下,新建booktest(app名称)的目录后再新建一个index.html
3、在视图views.py,修改视图index的返回值

return render(request,'booktest/index.html',{'content':'hello world','list':list(range(0,9))})

4、模板变量

<p>这是变量:{{ content }}</p>
<p>输出列表{{list}}</p>
遍历列表for:<br/>
<ul>
{% for i in list %}
    <li>{{ i }}</li>
    {% empty %}
        <li>没有查询到英雄信息</li>
{% endfor %}
</ul>

MVT综合小案例

url中patch,re_path与url的区别?

模板如何传递值给视图?

模板配置:
<a href="books\{{ book.id }}">{{ book.btitle }}</a>
urls配置:
url('^books/(\d+)$',views.show_heros) # 显示英雄信息
视图配置:
def show_heros(request,bid):

Django配置使用mysql

create database bj18 charset=utf8;
在settings.py中配置mysql数据库

python2安装mysql-python
pip install mysql-python
python3安装pymysql
pip install pymysql
项目__init__.py要同步配置:
import pymysql
pymysql.install_as_MySQLdb()

MVT复习案例

1、url重定向 rederct
2、<a href="/create">新增</a><a href=“create”>新增</a>区别
建议使用第一种,加上/

模型类_字段属性和选项

Django字段属性和选项
models.DateField() # 年月日
models.TimeField() # 时分秒
models.DateTimeField() # 年月日时分秒

ajax请求

异步的JavaScript
Django之AJAX传输JSON数据
HttpResponse与JsonResponse区别
ajax基本使用请看ajax登录案例

session、cookie

发布了49 篇原创文章 · 获赞 3 · 访问量 2073

猜你喜欢

转载自blog.csdn.net/darling_user/article/details/103702543
今日推荐