码迷,mamicode.com
首页 > 其他好文 > 详细

Django基础

时间:2019-09-17 22:34:36      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:imp   ken   请求   site   init   命名   命名空间   gis   模板渲染   

一、创建Django项目

1、创建project

django-admin startproject mysite

2、生成project的目录

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

3、其它常使用的命令

python manage.py startapp appname   #生成app
python manage.py runserver 0.0.0.0    #运行服务
python manage.py makemigrations     #数据库迁移
python manage.py migrate               #生成数据库表

二、项目配置

1、配置模板路径

TEMPLATE_DIRS = (
        os.path.join(BASE_DIR,templates),
    )

2、配置静态文件资源

STATICFILES_DIRS=(
    os.path.join(BASE_DIR,"statics"),
)

值得注意的是在创建项目时,settings中自动生成STATIC_URL = ‘/static/‘,它是引用名,代替STATICFILES_DIRS。

3、数据库配置

DATABASES = {
    default: {
        ENGINE: django.db.backends.mysql, 
        NAME: ‘‘, #数据库名称
        USER: ‘‘, #数据库用户名
        PASSWORD: ‘‘, #数据库密码
        HOST: localhost, #主机地址
        PORT: 3306, #端口号
    }
}

在进行使用mysql数据库时注意的是需要在与settings.py文件同一级的__init__.py文件中写入:

import pymysql

pymysql.install_as_MySQLdb()

三、路由配置

1、路由分发

首先有一个总的路由系统,然后根据总的路由系统在进行每一个app的分发:

from django.contrib import admin
from django.urls import path,include

urlpatterns = [
    path(admin/, admin.site.urls),
    path(blog/, include(blog.urls)),  #其中blog为app名字
]  

2、每一个app中的路由

每一个app中都有一个urls.py文件,其中的每一个路由都对应一个视图函数,当请求到来时,匹配对应的url并且交给对应的函数进行处理:

urlpatterns = [
    path(article/(\d{4})$/, views.artile,), 
    path(article/(?P<y>\d{4})/(?P<m>\d{2})/, views.artile_y),
    path(register/, views.register, name="reg" ),  
]

四、视图

当请求进入到视图后,就开始进行相应的处理:

def artile(request,year):
    return render(request,index.html,{year:year})

def artile_y(request,y,m):
    return render(request, index.html, {year: y,month:m})

def register(request):
    if request.method == GET:
        return render(request,register.html)
    return HttpResponse(success!)

五、模板渲染

1、渲染后台返回的数据

视图返回的数据就会在模板上进行渲染:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<p>年份:{{ year }}</p>
<h1>年份:{{ month }}</h1>
</body>
</html>

2、模板引入静态文件

值得注意的是如果有静态文件需要引入,在模板文件内容的上方load staticfiles:

{% load staticfiles %}
<!DOCTYPE html>
...
<script src="{% static ‘jquery-3.3.1.min.js‘ %}"></script>
...
</html>

3、模板中命名空间的使用

对于有命名空间的url,可以使用命名空间,而无需写url:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<form action="{% url ‘reg‘ %}" method="post">
...
...
</form>
</body>
</html>

 

Django基础

标签:imp   ken   请求   site   init   命名   命名空间   gis   模板渲染   

原文地址:https://www.cnblogs.com/shenjianping/p/11526291.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!