【02】Django框架:模型与站点

摘要:
② 从django导入包dbimportmodels③ model类继承自models model类。2) 生成迁移文件根据模型类生成sql语句。蟒蛇管理。pymakemigrations迁移文件生成到应用程序的迁移目录。为此,Django基于定义的模型类自动生成管理模块。蟒蛇管理。Pycreate超级用户② 启动服务器,通过127.0.0.1:8000/admin访问它,然后输入上面创建的用户名和密码以完成登录。

一、设计模型

1.创建应用

  在一个项目中可以创建一到多个应用,每个应用进行一种业务处理。
  创建应用的命令:

python manage.py startapp 应用名

2.定义模型类

  ①打开models.py文件,定义模型类。
  ②引入包

from django.db import models

  ③模型类继承自models.Model类。
  ④说明:不需要定义主键列,在生成时会自动添加,并且值为自动增长。
  ⑤当输出对象时,会调用对象的str方法。

3.生成数据表

  1) 激活模型

    编辑settings.py文件,将应用加入到installed_apps中应用列表。

  2) 生成迁移文件

    根据模型类生成sql语句。

python manage.py makemigrations

    迁移文件被生成到应用的migrations目录。
  3) 迁移文件

python manage.py migrate

  4) 执行迁移

    执行sql语句生成数据表。

4.测试数据操作

  进入python shell,进行简单的模型API练习

python manage.py shell

二、管理站点

1.服务器

  ①运行如下命令可以开启服务器

python manage.py runserver ip:port

  ②可以不写ip,默认端口为8000
  ③这是一个纯python编写的轻量级web服务器,仅在开发阶段使用

python manage.py runserver 8080

  ④打开浏览器,输入网址127.0.0.1:8000可以打开默认页面
  ⑤如果修改文件不需要重启服务器,如果增删文件需要重启服务器
  ⑥通过ctrl+c停止服务器

2.管理操作

  站点分为内容发布和公共访问两部分,内容发布的部分负责添加、修改、删除内容,开发这些重复的功能是一件单调乏味、缺乏创造力的工作。为此,Django根据定义的模型类完全自动地生成管理模块。

3.使用django的管理

  ①创建一个管理员用户,按提示输入用户名、邮箱、密码。

python manage.py createsuperuser

  ②启动服务器,通过127.0.0.1:8000/admin访问,输入上面创建的用户名、密码完成登录。
  ③进入管理站点,默认可以对groups、users进行管理。

4.管理界面本地化

  ①编辑settings.py文件,设置编码、时区 

LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'

  ②向admin注册应用的模型
    打开应用下admin.py文件,注册模型

from django.contrib import admin
from models import 应用

admin.site.register(应用, 应用管理器)
@admin.register(应用)

  刷新管理页面,可以对数据进行增删改查操作
  问题:如果在str方法中返回中文,在修改和添加时会报ascii的错误
  解决:在str()方法中,将字符串末尾添加.encode('utf-8')

5.自定义管理页面

  Django提供了admin.ModelAdmin类,通过定义ModelAdmin的子类,来定义模型在Admin界面的显示方式。

class QuestionAdmin(admin.ModelAdmin):
    ...
admin.site.register(Question, QuestionAdmin)

  1) 列表页属性

    ①list_display:显示字段,可以点击列头进行排序

list_display = ['pk', 'btitle', 'bpub_date']

    ②list_filter:过滤字段,过滤框会出现在右侧   

list_filter = ['btitle']

    ③search_fields:搜索字段,搜索框会出现在上侧

search_fields = ['btitle']

    ④list_per_page:分页,分页框会出现在下侧   

list_per_page = 10

  2) 添加、修改页属性

    ①fields:属性的先后顺序

fields = ['bpub_date', 'btitle']

    ②fieldsets:属性分组

fieldsets = [
    ('basic',{'fields': ['btitle']}),
    ('more', {'fields': ['bpub_date']}),
]

免责声明:文章转载自《【02】Django框架:模型与站点》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇中小团队选择一款合适的测试用例管理工具性能测试篇 :Jmeter监控服务器性能下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Python列表(list)所有元素的同一操作

针对很普遍的每个元素的操作会遍历每个元素进行操作。 这里给出了几种写法,列表每个元素自增等数学操作同理; 示例:整形列表ilist加1个数、元素类型转字符串: 1 ilist = [1, 2, 3, 10, 11, 12] 2 3 4 #每个元素加5,四种方法 5 for i, v in enumerate(ilist): ilist[i] = v +...

Python标准库存储对象(pickle包,cPickle包)

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 在之前对Python对象的介绍中 (面向对象的基本概念,面向对象的进一步拓展),我提到过Python“一切皆对象”的哲学,在Python中,无论是变量还是函数,都是一个对象。当Python运行时,对象存储在内存中,随时等待系统的调用。然而...

在visual studio code中配置python以及解决中文乱码问题

安装好 visual stuido code (下面简称 “ VSC ”)后,要想使用它运行调试 python 代码还需要做一些工作以解决下列问题: 搭建 python 环境 print 打印中文出现乱码 一、搭建 python 环境 在 VSC 中点击 F1 键,弹出控制台,输入 ext install 界面左侧弹出扩展窗格,输入python,确...

一步一步带你安装史上最难安装的 vim 插件

YouCompleteMe is a fast, as-you-type, fuzzy-search code completion engine for Vim.参考:https://github.com/Valloric/YouCompleteMe#full-installation-guide本篇文章默认读者知道什么是 unix/linux,vim/...

python基础二

一、pycharm使用 1、创建python新工程 2、添加内容文件及其位置 3、python调整字体,按住Ctrl+鼠标滑轮上下,pycharm设置在【File】-->【Settings】打开 设置:可以在【File】-->【Settings】-->【Editor】-->【General】的选项里进行设置 4、python...

python——多线程与线程锁

一、概念: 进程:对系统过来说,一个任务是一个进程; 线程:线程是包含在进程中。进程中,线程来工作,线程是最小的单位。一个进程可以启多个线程 二、进程和线程使用时的选择: 1.cpu密集型任务,用进程 #比如排序、计算的功能2.IO密集型任务,多线程 input Output #读写频繁,网络IO或者磁盘IO。浪费CPU比较少的用多线程3.如果需要读写也需...