urls.py 文件
urls.py 用以管理URL请求路径 与 响应函数关联
from django.conf.urls import url # Django2.0 以前用 url 配置路由;
# from django.urls import path # 2.x以后引入
# from django.contrib import admin # Django默认的输出内容
from BMS import views # 引入视图函数文件
# 配置路由
urlpatterns = [
# url(r'^admin/', admin.site.urls),
# psth('admin/',admin.site.urls), # Django 3.0 用path定义路由指向函数
url(r'^$',views.index), # 配置网站的首页
url(r'^book_list/',views.book_list),
]
views.py 文件
views.py 用以定义 urls.py 关联的函数。
from django.shortcuts import HttpResponse,render,redirect
# HttpResponse 返回字符串HttpResponse('返回内容')
# render 返回指定的文件 render(request,'返回文件路径',{'定义文件可以处理的数据(key:val)'})
# redirect 重定向到另一个页面。
from BMS import models # 引入数据库模型,这里是 models.py 而不是 Django 的 models 模块
# 定义页面的处理函数
def book_list(request,year):
bookList = models.Book.objects.all()
name = 'Jsom'
print(bookList)
# return redirect('/') # 重定向到首页,配置首页为 “ r'^$' ” 。
# return render(request,'book_list.html',locals()) # locals() 的使用,html文件中可获取到所有的局部变量,比如:“request、name、year”
return render(request,'book_list.html',{'book_list':bookList})
html文件
对应 views.py 函数返回给浏览器的前端页面
<table border="1">
<thead>
<tr>
<th>id</th>
<th>书名</th>
<th>出版社</th>
</tr>
</thead>
<tbody>
<!-- 这里处理了 render 给html文件的参数 -->
{% for listItem in book_list %}
<tr>
<td>{{ listItem.id }}</td>
<td>{{ listItem.title }}</td>
<td>{{ listItem.publisher.name }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<!-- 定义locals()后可以获取所有的局部变量 -->
<div>{{ request.path }}</div>
models.py 文件
models.py 用以建立数据库模型的文件
类 --> 表 属性 --> 字段 类实例对象 --> 表记录
from django.db import models # 这个 models 是Django建立数据库模型的
# 每个类必须继承 models.Model方法
# 出版社类
class Publisher(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=64,null=False,unique=True)
# 书类
微商城开发找上海捌跃网络科技有限公司
class Book(models.Model):
id = models.AutoField(primary_key=True)# 自增的ID主键
title = models.CharField(max_length=64,null=False,unique=True)
# 与出版社关联的字段 models.ForeignKey(to='关联外键的名称') 指定关联外键
publisher = models.ForeignKey(to='Publisher')
字段常用参数
(1)null
如果为True,Django 将用NULL 来在数据库中存储空值。 默认值是 False.
(1)blank
如果为True,该字段允许不填。默认为False。要注意,这与 null 不同。null纯粹是数据库范畴的,而 blank 是数据验证范畴的。如果一个字段的blank=True,表单的验证将允许该字段是空值。如果字段的blank=False,该字段就是必填的。
(2)default
字段的默认值。可以是一个值或者可调用对象。如果可调用 ,每有新对象被创建它都会被调用。
(3)primary_key
如果为True,那么这个字段就是模型的主键。如果你没有指定任何一个字段的primary_key=True,Django 就会自动添加一个IntegerField字段做为主键,所以除非你想覆盖默认的主键行为,否则没必要设置任何一个字段的primary_key=True。
(4)unique
如果该值设置为 True, 这个数据字段的值在整张表中必须是唯一的
(5)choices
由二元组组成的一个可迭代对象(例如,列表或元组),用来给字段提供选择项。 如果设置了choices ,默认的表单将是一个选择框而不是标准的文本框,而且这个选择框的选项就是choices 中的选项。
YOU_NAME = (
('KK', 'Keke'),
('NA', 'NANS'),
('MM', 'MiMi'),
)
每个元组中的第一个元素,是存储在数据库中的值;第二个元素是在管理界面或 ModelChoiceField 中用作显示的内容。 在一个给定的 model 类的实例中,想得到某个 choices 字段的显示值,就调用 get_FOO_display 方法(这里的 FOO 就是 choices 字段的名称 )。
运行命令创建数据库表
Django 不能创建数据库,所以只能自己手动到 mysql 创建数据库,当然也可以通过 python 模块运行命令创建数据库。
python manage.py makemigrations [APP名称] # 将 models.py 中的模型记录在一个文件中,并将其存放在 migrations 文件夹下
python manage.py migrate # 将 刚刚记录的语句写入数据库
---------------------
作者:爱人BT
来源:CSDN
原文:https://blog.csdn.net/u011146423/article/details/82558397
版权声明:本文为博主原创文章,转载请附上博文链接!
网友评论