Python 23 Django

零、基本配置操作

1、创建Django程序

命令:django-admin startproject name

2、程序目录

3、配置文件

(1)、数据库

1
2
3
4
5
6
7
8
9
10
DATABASES  =  {
     'default' : {
     'ENGINE' 'django.db.backends.mysql' ,
     'NAME' : 'dbname' ,
     'USER' 'root' ,
     'PASSWORD' 'xxx' ,
     'HOST' : '',
     'PORT' : '',
     }
}
1
2
3
4
5
6
# 由于Django内部连接MySQL时使用的是MySQLdb模块,而python3中还无此模块,所以需要使用pymysql来代替
  
# 如下设置放置的与project同名的配置的 __init__.py文件中
  
import  pymysql
pymysql.install_as_MySQLdb() 

(2)、模版

1
2
3
TEMPLATE_DIRS  =  (
         os.path.join(BASE_DIR, 'templates' ),
     )

(3)、静态文件

1
2
3
STATICFILES_DIRS  =  (
         os.path.join(BASE_DIR, 'static' ),
     )

一、url路由系统

1、带变量的url

path('<year>/<int:month>/<slug:day>',``````)

    在URL中使用<>可以设置变量,在括号中以冒号分为两个部分,冒号前为变量类型,不加则为字符串类型,冒号后为变量名。

2、基于正则的路由

url(r'^index/(\d*)', views.index),
url(r'^manage/(?P<name>\w*)/(?P<id>\d*)', views.manage),

3、为路由映射设置名称

url(r'^home', views.home, name='h1'),
url(r'^index/(\d*)', views.index, name='h2'),

设置名称后,可以在视图和模板中调用:

  • 视图中:reverse(“h2”, args=(2012,))   路径django.urls.reverse
  • 模板中:{% url 'h2' 2012%}

4、路由分发

    在APP中创建urls.py文件,将属于该APP的url地址都写入到这个文件中,当程序收到用户发送的请求时,先在根目录的urls.py文件中查找该地址属于哪个APP,将这个请求分发到该APP中,然后在APP的url.py中找到具体信息。

from django.urls import path,include #include就是分发函数
     urlpatterns = [
         path('1/',include(‘index.urls’))     #index是APP名字  
    ]

    给URL起别名看似没有必要,但是如果改变了URL的路径,则需要修改所有html中用到该URL的地方,这个时候使用别名就可以省去这些麻烦。

5、Django的路径添加问题

  在settings中添加 APPEND_SPASH = False 可以阻止django自动添加url最后的斜杠。

猜你喜欢

转载自www.cnblogs.com/yinwenjie/p/10935240.html