美文网首页我的Python自学之路
Django笔记(一) 文档 命令 url等

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

作者: 今夕何夕_walker | 来源:发表于2017-02-02 11:41 被阅读39次

    文档

    中文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传递参数给视图

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

    from django.conf.urls import url
    from . import views
    urlpatterns = [
        url(r'^articles/2003/$', views.special_case_2003),
        url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive),
        url(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$', views.month_archive),
        url(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[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<num>[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等

        本文链接:https://www.haomeiwen.com/subject/iexrittx.html