当前位置:   article > 正文

django之todolist(一)_django to do list

django to do list

 

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

 

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

 

还需要使用以下命令:

 

python manage.py makemigrations appname

 

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

 

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

 

 

 

 

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

 

python manage.py sqlmigrate appname  001

 

 

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

 

 

 

网站管理:

 

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

 

在project下,使用

python manage.pycreatesuperuser

一路创建下去

 

使用命令:

python manage.pyrunserver 来跑起网站

默认127.0.0.1,8000 端口

 


 

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

 

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

 

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

 


model 属性保存被关联的表

extra  显示的关联的表的个数

 

list_display 可以指定显示哪些属性

list_filter  可以在右侧生成过滤器

 

对应命令注册:

admin.site.register(Question,QuestionAdmin)

 

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


注册进去:


样式修改

 


加入filter

 

 

 

 

表头显示

 


Render:

 

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

 

 

 

 

关于url的软硬编码:

 

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

<li><ahref="/polls/{{question.id}}/">{{question.question_text}}</a></li>

 

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

<li><ahref="{%url'detail'question.id%}">{{question.question_text}}</a></li>

 

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

...
# the 'name' value as called by the {% url %} template tag
url(r'^(?P<question_id>[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的添加功能,等功能补全以及前端页面做好后再整理一下。

截图:


 





声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号