美文网首页
Django 路由设置和前端页面互相关联的方法高端网站定制

Django 路由设置和前端页面互相关联的方法高端网站定制

作者: a0f39b0b2030 | 来源:发表于2018-10-23 23:54 被阅读39次

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

版权声明:本文为博主原创文章,转载请附上博文链接!

相关文章

网友评论

      本文标题:Django 路由设置和前端页面互相关联的方法高端网站定制

      本文链接:https://www.haomeiwen.com/subject/iswzzftx.html