首页 > Python基础教程 >
-
谈谈 django 应用实践(3)
不过对于高并发的应用来说外键不是很推荐。
forms 模块
1. 前端传上来一个表单的值,但是没法确认这些值是不是为空,是不是类型正确,这个时候当然可以自己一个个值判断,也可以采用 forms 模块去做验证,用过 django-rest-framework 的同学会知道和里面的 serializers 是同一个概念
1
2
3
|
class PersonDetailsForm(forms.Form): name = forms.CharField(max_length = 100 ) age = forms.IntegerField() |
2. 如果你用的是模板渲染的方式,那么展示的时候更简单,表单能自动生成 html 的表单。
1
2
3
4
5
6
|
>>> f = PersonDetailsForm() >>> print (f.as_p()) <p><label for = "id_name" >Name:< / label> < input id = "id_name" maxlength = "100" name = "name" type = "text" / >< / p> <p><label for = "id_age" >Age:< / label> < input id = "id_age" name = "age" type = "number" / >< / p> |
admin 模块
1. admin 基本上开箱即用,如果需要定制的话,也能做一些组件的定制,不过这些东西得看文档去详细了解了。
commands 模块
1. django 提供了后台脚本模块,可以自己集成 BaseCommand 类去自定义脚本
1
|
python mannage.py -h |
这个命令就能看到所有的 commands 命令
2. 如果不想用他的模块,又想引入 django 项目的一些模块,可以采用下面的方法解决
1
2
|
os.environ.setdefault( "DJANGO_SETTINGS_MODULE" , "myproject.settings" ) django.setup() |
settings 模块
1. 所有的 settings 默认值都在这里面能找到,https://github.com/django/django/blob/master/django/conf/global_settings.py
2. 上线的时候记得把 DEBUG 改成 False, 然后加上 ALLOWED_HOSTS
3. MEDIA_ROOT, MEDIA_URL, STATIC_ROOT, STATIC_URL 这几个之前经常搞混,其实可以分为两类,MEDIA_ROOT 指的是上传文件的目录,MEDIA_URL 指的是前缀名,http://example.com/media/, 其中的media 就是 MEDIA_URL, 同样,STATIC_ROOT 指的是静态文件的目录,一般放 css, js 之类,STATIC_URL 值得是前缀名,http://example.com/static/。
4. 一般部署上线的时候,用 nginx 直接渲染静态文件
1
2
3
4
5
6
|
location / media { alias / root / example_project / public / media; } location / static { alias / root / example_project / static; } |