Django笔记(一) 文档 命令 url等

文档

中文1.8 :

http://python.usyiyi.cn/django/index.html

英文1.10:

https://docs.djangoproject.com/en/1.10/

setting:

https://docs.djangoproject.com/en/1.9/ref/settings/#databases

基本命令

创建项目

django-admin.py startproject mysite

创建app

python manage.py startapp books

添加app到setting后运行命令

python manage.py makemigrations appname

使用现有的数据库

python manage.py inspectdb
django会根据配置的数据库中的表生成models语句
python manage.py inspectdb > models.py

查看模型对应的sql语句

python manage.py sqlmigrate appname

install the core Django tables

python manage.py migrate

启动

python manage.py runserver

更改运行端口

python manage.py runserver 8080
局域网访问
python manage.py runserver 0.0.0.0:8080

视图 The view layer

url配置

url传递参数给视图

命名正则表达式组的语法是(?Ppattern),其中name是组的名称,pattern是匹配模式。

from django.conf.urls import url
from . import views
urlpatterns = [
    url(r'^articles/2003/$', views.special_case_2003),
    url(r'^articles/(?P[0-9]{4})/$', views.year_archive),
    url(r'^articles/(?P[0-9]{4})/(?P[0-9]{2})/$', views.month_archive),
    url(r'^articles/(?P[0-9]{4})/(?P[0-9]{2})/(?P[0-9]{2})/$', views.article_detail),
]
# /articles/2005/03/ 请求将调用views.month_archive(request, year='2005', month='03')函数,而不是views.month_archive(request, '2005', '03')。

指定视图参数默认值

# URLconf
from django.conf.urls import url
from . import views
urlpatterns = [
    url(r'^blog/$', views.page),
    url(r'^blog/page(?P[0-9]+)/$', views.page),
]
# View (in blog/views.py)
def page(request, num="1"):
    # Output the appropriate page of blog entries, according to num.
    ...

在上面的例子中,两个URL模式指向同一个视图views.page —— 但是第一个模式不会从URL 中捕获任何值。如果第一个模式匹配,page() 函数将使用num参数的默认值"1"。如果第二个模式匹配,page() 将使用正则表达式捕获的num 值。

获取url的querystring和设置默认值

#一般方法
if 'date' in request.GET:
    date = request.GET['date']
else:
    date = '2010-05-04'
#简写方法
data = request.GET.get('data','2010-05-04')

批量301 302

# 302
from django import http
def view(request):
    return http.HttpResponseRedirect('http://example.cn/')
#301
from django import http
def view(request):
    return http.HttpResponsePermanentRedirect('http://example.cn/')

你可能感兴趣的:(Django笔记(一) 文档 命令 url等)