django 学习笔记一

文件目录

path.png

manage.py

文件里面配置了 DJANGO_SETTINGS_MODULE,也就是 设置(setting.py) 的路径

settings.py

此文件中主要是做一些变量的设置,例如:

  • DEBUG 代表当前为设置环境

  • ALLOWED_HOSTS 代表能够通过的的 host

  • ROOT_URLCONF 代表 URL 的配置路径

然后在其他文件中可以导入 setting 然后读取此文件中的配置

from django.conf import settings

if settings.DEBUG:
    # Do something

完整的设置清单和各个字段的结束

联想 如果有其他的配置,也可以放在 setting 中

自定义设置要求

  • 设置名称全部是大写
  • 不要使用一个已经存在的设置

global_setting.py

目录中并没有此文件,此文件路径在 django/conf/global_setting 中

此文件为 django 的默认配置文件,如果没有设置 “配置文件路径”,则使用该默认的配置

使用

python manage.py diffsettings

命令可以查看当前设置和默认设置 global_setting 的不同


在官方文档中 也说明了其他方法设置 “设置文件的路径”

Mac 中有两种方式:

# 第一种
export DJANGO_SETTINGS_MODULE=mysite.settings 
django-admin runserver

# 第二种
django-admin runserver --settings=mysite.settings

运行

pyhon manage.py runserver 8080

如果你需改变服务器的IP地址,把IP地址和端口号放到一起。 因此若要监听所有的外网IP,请使用(如果你想在另外一台电脑上展示你的工作,会非常有用):

python manage.py runserver 0.0.0.0:8000

开始代码编辑

初始化文件目录

django 会自动帮我们初始化一个文件目录

# 当然后面的 polls 就是文件夹名称,可以更改此文件夹的名称
python manage.py startapp polls

进入 shell 命令行

python manage.py shell

配置文件中 settings INSTALLED_APPS 中增加 polls

执行命令,让 Django 知道 polls 应用

python manage.py makemigrations polls

查看改动
python manage.py sqlmigrate polls 0001

修改你的模型(在models.py文件中)。
运行python manage.py makemigrations ,为这些修改创建迁移文件
运行python manage.py migrate ,将这些改变更新到数据库中。


shell

进入 shell 命令行

python manage.py shell

# 查询所有
Question.objects.all()

# 过滤查询
Question.objects.filter(id=1)

# 保存
 .save()
 
# 过滤查询 字符串可以以 startswith 查找开头 <name>__startswith=
Question.objects.filter(question_text__startswith='what')

# 时间查询 <name>__year 过滤 年
 Question.objects.get(pub_date__year=2008)
 
# 通过一个模型关联另外一个表,可以操纵另外一个表,并且另外一个表的外联 key 自动关联模型中的 primary key
# create 后面的参数是创建另外一个表对象的参数
# 则 choice 对象中的 id 自动关联 q 的 ID,并且 choice 数据库中自动添加一个
q.choice_set.create(choice_text="some text", votes=1)

创建一个管理员用户

教程


注册超级管理员

python manage.py createsuperuser

启动服务器

# 后面可以跟上 IP 地址,来设置运行的IP
python manage.py runserver

# example
python manage.py runserver 0.0.0.0:8000

默认是在 http://127.0.0.1:8000/ 上面运行

后面拼接用户名称,并且登录即可登录进去

http://127.0.0.1:8000/admin/

【说明】 当 runserver 之后,所有对文件的改动,都会被服务监控到,故每次改动后保证代码正常,再 save,服务监控到改动之后,会自动重启服务,如果有错误,无法正常重启,则浏览器中界面将会报错

进入登录界面


让我们自定义的 APP 出现在界面中

站点注册一个模型,则页面中可直接显示,修改 admin.py


from .models import Question

admin.site.register(Question)

自定义管理表单

更改顺序

得来全不费工夫,只需使用admin.site.register(Question)注册Question模型,Django就能构造一个默认的表单表示。通常,你会想要自定义管理界面中表单的外观和功能。 你可以通过在注册对象的时候告知Django一些你想要的选项来完成。

让我们通过对编辑表单上的字段重新排序来看一下它是如何工作的。

【说明】以下的例子是可以更改排列顺序的例子(更改编辑界面的顺序)

在 admin.py 文件中

将admin.site.register(Question)行替换成:

from .models import Question

class QuestionAdmin(admin.ModelAdmin):
    # 将 text 放在了 date 后面,则试图上面的顺序就会更改
    fields = ['pub_date', 'question_text']

admin.site.register(Question, QuestionAdmin)

无论何时,当你需要修改一个对象的管理选项的话,就按照这样的步骤来做:创建一个模型管理对象(class),然后把该对象(class名)作为第二个参数传入admin.site.register()。

上面的特定的更改,使得“Publication date”字段排在“Question”字段前面

为每个字段分组

from models import Question

class QuestionAdmin(admin.ModelAdmin):

    # 没有分组的写法
    # fields = ['pub_date', 'question_text']


    # 是一个元组集合
    # 元组中第一个是组头信息, 后面的为此组中的字段排列顺序
    fieldsets = [
    ('pub_date info',       {'fields': ['pub_date']}),
    ('question_text info',  {'fields': ['question_text']}),
    ]

admin.site.register(Question, QuestionAdmin)

增加样式

# 指定样式
    fieldsets = [
        (None,               {'fields': ['question_text']}),
        ('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}),
    ]

为一个模型中关联另外一个模型

# 关联其他模型
# StackedInline 宽松型的 TabularInline 是紧凑型的
class ChoiceInline(admin.StackedInline):
    model = Choice
    extra = 3

# 设置要添加的关联个数
inlines = [ChoiceInline]

设置一个模型中展示的字段

    # 用来设置展示的每个模型中的内容
    # 可以增加方法名称来展示
    list_display = ('question_text', 'pub_date', 'was_published_recently')

增加一个 过滤 选项

list_filter = ['pub_date']

搜索工鞥

# 设置搜索功能,可以设置搜索的参考
    search_fields = ['question_text', 'pub_date']

设置分页功能

查看
现在又是一个好时机来告诉你变更列表界面提供方便的分页功能。 默认每页显示100条记录。 Change list pagination、search boxes、filters、date-hierarchies和column-header-ordering 都将按照你设想的那样工作。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,018评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,046评论 2 372
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,215评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,303评论 1 266
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,181评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,171评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,577评论 3 384
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,260评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,546评论 1 292
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,630评论 2 311
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,390评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,260评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,633评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,920评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,210评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,569评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,767评论 2 335

推荐阅读更多精彩内容