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基础的主要内容,如果未能解决你的问题,请参考以下文章