首页 > 其他 > 详细

django几大部分

时间:2019-04-21 18:50:25      阅读:98      评论:0      收藏:0      [点我收藏+]

一、路由系统:

1、可以使用includ进行url分发(include里面加的就是app里面urls 的路径)

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


urlpatterns = [
    # url(r‘^admin/‘, admin.site.urls),
    url(r^app01/, include("APP01.urls")),
    url(r^app02/, include("APP02.urls")),
]




from django.conf.urls import url, include
from django.contrib import admin
from APP01 import views

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

 

 

2、例如编辑的时候,以往是通过   

<a href="/app01/edit/?id={{ id }}">编辑</a>

   这样的方式发送到后端,现在可以使用路由中的正则来匹配,

如:

路由中:
url(r‘^edit/(\w+)/‘, views.edit),

视图中:
def edit(request, name):
print(name)

模版中:
<a href="/app01/edit/{{ user }}">编辑</a>




3、路由系统中url正则组还可以自定义命名,视图中根据正则组名字来取
urlpatterns = [
url(r‘^edit/(?P<a1>\w+)/(?P<a2>\w+)‘, views.edit),
]
上述就是给两个正则组分别命名为p1、p2,需要注意的是,正则组如果采用位置就都采用位置,如果采用名字就都采用名字
路由正则尽量以$结尾,如果以 / 结尾的话 /前面可以无限写东西


4、伪静态(路由系统中url后缀加.html),目的是让用户感觉到是静态文件,加载很快的样子
urlpatterns = [
url(r‘^edit/(?P<a1>\w+)/(?P<a2>\w+).html/$‘, views.edit),
]



5、路由系统反向生成url(根据名字反向寻找url)
应用场景:比如说不同的用户有不同的权限能访问不同的url,如果把每个人能访问的url都放进数据库占空间,而直接放反向生成的别名就好了。

在python代码中可以应用:
路由中:
urlpatterns = [
url(r‘^edit/(?P<a1>\w+)/(?P<a2>\w+).html/$‘, views.edit, name="t2"),
]
视图中:
from django.urls import reverse
v = reverse("t2", kwargs={"a1": "alex", "a2": 18})
print(v)

在模版中可以应用:
<form method="post" action="{% url "t2" %}">
<input type="text">
</form>
 
二、ORM(当数据库的表中有数据又添加新列的时候,可以设置新列null=Treu或者default=“xxx”):
django中使用orm中的准备:

1、手动创建数据库

2、settings配置:
DATABASES = {
‘default‘: {
‘ENGINE‘: ‘django.db.backends.mysql‘,
‘NAME‘: ‘Test2‘,
‘HOST‘: ‘127.0.0.1‘,
‘PORT‘: 3306,
‘USER‘: ‘root‘,
‘PASSWORD‘: ‘‘,
}
}

3、与settings同级的init文件中配置:
import pymysql
pymysql.install_as_MySQLdb()

4、在app的models中创建表
class userinfo(models.Model):
nid = models.AutoField(primary_key=True) (这一列可以不写,django会自动生成一列名称为“id”的列为主键,并且自增,并且int)
username = models.CharField(max_length=32)
password = models.CharField(max_length=64)

5、在settings 中注册app信息
INSTALLED_APPS = [
‘django.contrib.admin‘,
‘django.contrib.auth‘,
‘django.contrib.contenttypes‘,
‘django.contrib.sessions‘,
‘django.contrib.messages‘,
‘django.contrib.staticfiles‘,
‘APP01‘,
]

6、输入生成表的命令

python manage.py makemigrations

python manage.py migrate



 








django几大部分

原文:https://www.cnblogs.com/QimiSun/p/10746016.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!