Django基础

Posted shenjianping

tags:

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

一、创建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/(\d4)$/, views.artile,), 
    path(article/(?P<y>\d4)/(?P<m>\d2)/, 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基础的主要内容,如果未能解决你的问题,请参考以下文章

Django基础

Django 基础教程

Django基础笔记

django基础

Python-Django基础知识

Django基础--环境搭建并创建django项目