Django 流程html
Django url经常使用匹配语法python
几种匹配(在与项目同名的文件夹里的urls.py里写,对应的函数在APP*里的views.py里写)mysql
from django.conf.urls import url from . import views urlpatterns = [ url(r'^articles/2003/$', views.special_case_2003),#匹配文章的年是2003的 url(r'^articles/([0-9]{4})/$', views.year_archive), url(r'^articles/([0-9]{4})/([0-9]{2})/$', views.month_archive), url(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$', views.article_detail), ]
Name Groupsweb
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), ]
上面url里面的匹配和正则表达式是同样的,根据咱们本身的须要去选择相应的正则表达式正则表达式
include在url中的用途:项目里面的每一个应用即app*里面都有本身的urlsql
注意:url里面不能写动词,虽然不出错,可是不规范数据库
from django.conf.urls import include, url urlpatterns = [ # ... snip ... url(r'^community/', include('django_website.aggregator.urls')), url(r'^contact/', include('django_website.contact.urls')), # ... snip ... ]
在url后面加上了字典,它的用途是:django
若是在全局的url中加上字典的话,那么在每个视图里都会加上该字典里的类型做为参数浏览器
注意:是用户对象,而不是用户名,这里是对一堆的信息封装成为对象app
GET和POST请求方法:
GET和POST请求方法:
GET请求的东西是明文显示的 POST请求的东西是非明文的 PostMan插件(只能用于chrone浏览器)
Django Template渲染:
字符串 字典 列表,
>>> from django.template import Context, Template >>> t = Template('My name is {{ name }}.') >>> c = Context({'name': 'Stephane'}) >>> t.render(c) u'My name is Stephane.'
>>> from django.template import Template, Context >>> person = {'name': 'Sally', 'age': '43'} >>> t = Template('{{ person.name }} is {{ person.age }} years old.') >>> c = Context({'person': person}) >>> t.render(c) u'Sally is 43 years old.'
>>> from django.template import Template, Context >>> t = Template('Item 2 is {{ items.2 }}.') >>> c = Context({'items': ['apples', 'bananas', 'carrots']}) >>> t.render(c) u'Item 2 is carrots.'
Django Template动态显示数据:
在view.py写好多的数据,要显示在网页上,那么就要在template/app01/index.html中循环的语句
<ul> {%for user_obj in user_objs%} {% ifequal user_obj.username 'alex'%} <li style="background-color:red">username:{{user_obj.username}},name:{{user_obj.name}}</li> {%else%} <li style="">username:{{user_obj.username}},name:{{%user_obj.name%]}</li> {%endifequal%} {%endfor%} </ul>
<ul> {%for user_obj in user_objs%} {% if forloop.counter divisibleby:"2"%} <li style="background-color:red">username:{{user_obj.username}},name:{{user_obj.name}}</li> {%else%} <li style="">username:{{user_obj.username}},name:{{%user_obj.name%]}</li> {%endifequal%} {%endfor%} </ul>
Django Template经常使用语法:
一、先作的子页面(views.py)
def page1(request): return render(request,'app01/page1.html')
二、继承(page1.html)
{% extends 'app01/index.html' %} {% block header-menu %} <h1>sub menu 1....3....45...5</h1> {% endblock %} {% block content-container %} page1 {% endblock %}
三、index.py
<body> {% block header-menu %} <ul> <li style="display:inline-block">Home<li> <li style="display:inline-block">page1<li> <li style="display:inline-block">page2<li> <li style="display:inline-block">page3<li> </ul> {% endblock %}
Django Template 模板继承和复用:
首先看一下项目中包含的文件吧!
register_com.html:
<div style="background-color:aquamarine"> <form action="/register"> Username:<input name="username" type="text"> Password:<input name="password" type="password"> </form> </div>
page1.html:加入的语句为:
{% block father-container %} {% include 'app01/register_com.html' %} {% endblock %}
page1.html:
{% extends 'app01/index.html' %} {% block header-menu %} <h1>sub menu 1...3..45..5</h1> {% endblock %} {% block content-container %} <h1>page</h1> {% block father-container %} {% include 'app01/register_com.html' %} {% endblock %} {% endblock %}
Django配置使用数据库:
要配置好数据库的链接(在settings.py中)
须要安装mysql
在建立数据库的时候为了支持中文,须要这样写:create database ** charset utf8;(**为本身起的数据库的名字)
Django ORM经常使用语法:
在APP中有一个models.py,在这里建立数据库
在settings.py里:
1,把本身的应用添加进去,
2,建立数据库,
3,在admin.py中引入models
4,同步数据库,
>>>python manage.py makemigrations
>>>python manage.py migrate
5,建立超级用户,
>>>python manage.py createsuperuser
6,最后在models.py中不要忘了添加如下的语句,在python 3.0用str不用unicode
Django ORM经常使用字段:
字段:
blank:若是它为true,则其对应的input能够为空
editable:若是它为false,则其对应的input在页面上就不显示了,可是在数据库中仍是存在的
help_text:提示对应的input填什么内容
verbose_name:对应的input的名字
Django Admin建立数据库数据:
查找和修改:
建立:2种方式,
过滤:
Django 增删改查:
模糊查找,
改:
关联查询: