Django 总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 总结相关的知识,希望对你有一定的参考价值。

Django项目的创建

安装django,参考:http://www.cnblogs.com/0bug/p/8044806.html

django依赖python解释器,安装目录 C:\\Python36\\Scripts

创建项目

 django-admin startproject project_name

项目与应用:一个项目可以由多个应用。一个应用完成一类功能。

创建应用(在项目中,cd project_name):

python manage.py startapp app_name

在Pycharm中创建django项目:

File-New Project-Django-Location-Interpreter-Application name-Create

 

技术分享图片

 

项目目录:

技术分享图片

Django项目登录设计

urls.py

from django.conf.urls import url
from app_name import views
urlpatterns = [
    url(r‘^login/$‘, views.login),
    url(r‘^index/$‘, views.index),
]

views.py

from django.shortcuts import render, redirect


def login(request):
    if request.method == ‘POST‘:
        u = request.POST.get(‘user‘)
        p = request.POST.get(‘pwd‘)
        if u == ‘lcg‘ and p == ‘123‘:
            return redirect(‘/index/‘)
    return render(request, ‘login.html‘)


def index(request):
    return render(request, ‘index.html‘)

login.html(body部分)

<form action="/login/" method="post">
    {% csrf_token %}
    <p><input type="text" name="user" placeholder="用户名"></p>
    <p><input type="password" name="pwd" placeholder="密码"></p>
    <p><input type="submit" value="登录"></p>
</form>

index.html(body部分)

<h1>登录成功</h1>

启动项目

python manage.py runserver

技术分享图片

技术分享图片

路由分配系统

视图函数

模板语言

ORM

语法格式

简单的演示

from django.conf.urls import url
from django.contrib import admin

urlpatterns = [
    url(r‘^admin/‘, admin.site.urls),
]

书写格式:

urlpatterns = [
    url(regex, view, kwargs=None, name=None),
]
技术分享图片
def url(regex, view, kwargs=None, name=None):
    if isinstance(view, (list, tuple)):
        # For include(...) processing.
        urlconf_module, app_name, namespace = view
        return RegexURLResolver(regex, urlconf_module, kwargs, app_name=app_name, namespace=namespace)
    elif callable(view):
        return RegexURLPattern(regex, view, kwargs, name)
    else:
        raise TypeError(view must be a callable or a list/tuple in the case of include().)
urls

分组

用括号 "()"包裹的内容就是分组的内容,该内容传给视图函数,视图函数通过位置参数或关键字参数接收。

无名分组,位置参数:

urls.py

from django.conf.urls import url
from app_name import views
urlpatterns = [
    url(r‘^showTime/(\\d{4})/(\\d{2})$‘,views.showTime ),
]

views.py

from django.shortcuts import HttpResponse


def showTime(request, year, month):
    return HttpResponse(‘现在是 %s年%s月‘ % (year, month))

技术分享图片

有名分组,关键字参数:

urls.py:
urlpatterns = [
    url(r‘^showTime/(?P<year>\\d{4})/(?P<month>\\d{2})$‘,views.showTime ),
]
views.py:
def showTime(request, month, year):
    return HttpResponse(‘现在是 %s年%s月‘ % (year, month))

相对于无名分组,有名分组使用?P<参数名>的方式通过关键字传参,位置参数接收的值会随着位置顺序变化而存在差异,关键字参数接收的值不会因位置顺序差异而不同。

技术分享图片

别名

我们上面的登录设计里面,如果我们需要更改访问时候的url 比如login改成login1那么对应的login.html中form表单的action项也得改,如果频繁的改,势必会给我们带来很多不便,别名正式解决这样的需求的。

有了别名,我们在html界面里面action项里面只需要些别名。url中的login怎么改,html都会通过别名找到对应改过的login。

urls.py

urlpatterns = [
    url(r‘^login/$‘, views.login,name=‘firstStep‘),
]

login.html

<form action="{% url ‘firstStep‘ %}" method="post">
    ......
</form>

路由应用分发

--未完待续--

以上是关于Django 总结的主要内容,如果未能解决你的问题,请参考以下文章

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段

python常用代码片段总结

BootStrap有用代码片段(持续总结)

BootStrap实用代码片段(持续总结)

回归 | js实用代码片段的封装与总结(持续更新中...)

Django REST框架--认证和权限