django之todolist(一)

 

关于模型, 文档中提示使用:python manage.pystartapp appname

 

pycharm可以直接为我们做到这一点

 

还需要使用以下命令:

 

python manage.py makemigrations appname

 

makemigrations  告诉django已经对模型做了修改

 

对应本地会在app下的migrations文件夹下生成0001_initial.py

 django之todolist(一)_第1张图片

 

 

 

migrate命令可以运行这些迁移文件并自动管理你的数据库模式:

 

python manage.py sqlmigrate appname  001

 django之todolist(一)_第2张图片

 

再使用一次命令:python manage.py migrate

 django之todolist(一)_第3张图片

 

 

网站管理:

 

每个项目对应可以创建一个管理员用户便于管理

 

在project下,使用

python manage.pycreatesuperuser

一路创建下去

 

使用命令:

python manage.pyrunserver 来跑起网站

默认127.0.0.1,8000 端口

django之todolist(一)_第4张图片 

django之todolist(一)_第5张图片

 

然后将对应需要管理的数据内容提交到这个页面。在admin.py 注册

 

django提供外键关联(inlines)属性来进行关联。

 

定义一个类,继承admin.TabularInline 或者 admin.StackedInline (显示上有区别)

 django之todolist(一)_第6张图片

django之todolist(一)_第7张图片

model 属性保存被关联的表

extra  显示的关联的表的个数

 

list_display 可以指定显示哪些属性

list_filter  可以在右侧生成过滤器

 

对应命令注册:

admin.site.register(Question,QuestionAdmin)

 

第一个参数可以理解成表,另一个是对页面显示的描述


注册进去:

django之todolist(一)_第8张图片

样式修改

django之todolist(一)_第9张图片 


加入filter

django之todolist(一)_第10张图片 

 

 

 

表头显示

 django之todolist(一)_第11张图片


Render:

 

render()函数将象作它的第一个参数,模板的名字作它的第二个参数,一个字典作它可的第三个参数。 它返回一个HttpResponse对象,含有用给定的context 渲染后的模板。

 

 

 

 

关于url的软硬编码:

 

硬编码 :在view层的超链接中会出现类似:

  • href="/polls/{{question.id}}/">{{question.question_text}}
  •  

    这种代码不利于维护,可以使用在polls.urls下定义的name参数,这样如果需要修改只需要调整appname.urls的代码。使用方法:

  • href="{%url'detail'question.id%}">{{question.question_text}}
  •  

    对应urls中的name参数,传参的形式仿照例子写即可。

    ...
    # the 'name' value as called by the {% url %} template tag
    url(r'^(?P[0-9]+)/$', views.detail, name='detail'),
    ...

    最后引入命名空间的概念。真实的项目中可能不止一个应用,所以需要一个机制来区分他们的url名字。

     

    在项目的urls配置文件当中做如下修改:

    urlpatterns= [
        url(r'^polls/', include('polls.urls', namespace="polls")),
        url(r'^admin/', include(admin.site.urls)),
    ]

     

     

    超链接改成如下形式:

    action="{%url'polls:vote'question.id%}"

    目前做了todolist的添加功能,等功能补全以及前端页面做好后再整理一下。

    截图:


    django之todolist(一)_第12张图片 

    django之todolist(一)_第13张图片

    django之todolist(一)_第14张图片django之todolist(一)_第15张图片



    你可能感兴趣的:(python,django)