django项目创建步骤
环境:Python3.7 编辑器:pycharm
1.创建项目
cmd命令行输入以下命令创建项目:
django-admin startproject 【项目名】
项目目录结构:
manage.py 与项目进行交互的命令行工具集的入口,项目管理器。Python manage.py runserver启动服务器
【项目名】 项目的一个容器,包含项目最基本的配置,目录名一般不建议修改
_init_.py Python中声明模块的文件,内容默认为空
settings.py 项目的总配置文件,里面包含了数据库、Web应用、时间等各种配置
urls.py url配置文件,Django项目中所有地址(页面)都需要我们自己去配置其URL
wsgi.py WSGI(Python Web Server Gateway Interface)Python服务器网关接口,Python应用与Web服务器之间的接口
2创建应用
1打开命令行,进入项目中manage.py同级目录,输入:
python manage.py startapp 【应用名】
2添加【应用名】到settings.py中的INSTALLED_APPS里。(应用名不可与Python模块名相同)
应用目录结构:
migrations 数据移植(迁移)模块,自动生成
_init.py_
_init.py_
admin.py 该应用的后台管理系统配置
apps.py 该应用的一些配置,Django1.9以后自动生成
models.py 数据模块,使用ORM框架,类似MVC结构中的Models(模型)
tests.py 自动化测试模块,Django提供了自动化测试功能,在这里编写脚本(语句)
views.py 执行响应的代码所在模块,代码逻辑处理的主要地点,项目中大部分代码均在这里编写
3创建网页(响应)
第一种配置方法:
【项目名】.views
from django.shortcuts import render
from django.http import HttpResponse
def 【函数名1】(request):
return HttpResponse('hello,world')
- 每个响应对应一个函数,函数必须返回一个响应。
- 函数必须存在一个参数,一般约定为request
- 每一个响应(函数)对应一个URL
【项目名】.urls
import 【项目名】.views as bv
urlpatterns = [
……
url(r'^index/',bv.【函数名1】),
]
- 每个URL都以url的形式写出来
- url函数放在urlpatterns列表中
- url函数的三个参数:URL(正则)、对应方式、名称
访问路径127.0.0.1:8080/index/【函数名1】
第二种配置方法:
【项目名】.urls
import django.conf.urls import url,include
urlpatterns = [
……
url(r'^【路径1】/',include('【项目名】.urls')),
]
应用目录下创建urls.py
import views
urlpatterns = [
url(r'^【路径2】/',views.【函数名1】),
]
访问路径:127.0.0.1:8080/【路径1】/【路径2】/
- 在根urls.py中引入include
- 在APP目录下创建urls.py文件,格式与根urls.py相同
- 根urls.py中url函数第二个参数改为include(‘【项目名】.urls’)
注意事项:
- 根urls.py针对APP配置的URL名称,是该APP所有URL的总路径
- 配置URL时注意正则表达式结尾符号/$
Templates介绍
- html文件
- 使用了Django模板语言(Django Template Language,DTL)
- 可以使用第三方模板(如jinja2)
步骤:
- 在APP根目录下创建名为Templates的目录
- 在该目录下创建html文件
- 在views.py中返回render()
from django.shortcuts import render
def 【函数名】(request):
return render(request,'xxx.html',{'a':'a1'})
xxx.html
……
<body>
{{a}}
</body>
……
DTL初步使用
- render()函数中支持一个dict类型参数
- 该字典是后台传递到模板的参数,键为参数名
- 坐在模板中使用{{参数名}}来直接使用
Django查找Template
- Django按照INSTALLED_APPS中的添加顺序查找Templates
- 不同APP下Templates目录的同名html文件会造成冲突
解决冲突方案:
在app的Templates目录下创建以APP名为名称的目录,将html文件放入新创建的目录下
from django.shortcuts import render
def 【函数名2】(request):
return render(request,'【应用名】/xxx.html',{'a':'a1'})
models介绍
- Django中的models是什么?
- 通常一个models对应数据库的一张数据表
- Django中的models以类的形式表现
- 它包含了一些基本字段以及数据的一些行为
ORM对象关系映射(Object Relation Mapping),实现了对象和数据库之间的映射,隐藏了数据访问的细节,不需要编写sql语句
步骤:
- 在应用根目录下创建models.py,并引入models模块
- 创建类,继承models.Model,该类即是一张数据表
- 在类中创建字段
models.py
from django.db import models class 【类名】(models.Model): attr=models.CharFiled(max_length=64)
……
生成数据表
步骤:
- 连接已存在数据库,
-
设置setting中database的信息,
-
terminal下输入python manage.py inspectdb反向生成models,
-
将改动应用到数据库表models,
-
terminal下输入python manage.py makemigrations
-
terminal下输入python manage.py migrate
查看
- Django会自动在app/migrations/目录下生成移植文件
- 执行python manage.py sqlmigrate 应用名 文件id 查看SQL语句
连接mysql数据库:【项目名】/_init_.py
import pymysql pymysql.install_as_MySQLdb()
呈现页面数据
views.py
import models
def 【函数名2】(request):
【对象】=models.【类名】.object。get(pk=1) return render(request,'【应用名】/xxx.html',{'【对象】':【对象】})
xxx.html
……
<body>
{{【对象】.属性}}
</body>
……
admin简介
admin是Django自带的一个功能强大的自动化数据管理界面,被授权的用户可直接在admin中管理数据库,Django提供许多针对admin的定制功能
配置admin
创建超级用户
pyhton manage.py createsuperuser
然后输入用户名和密码
访问路径 127.0.0.1:8080/admin/
修改settings.py中的LANGUAGE_CODE=‘zh_Hans’ 改为中文
配置应用
在应用下admin.py中引入自身的models模块(或里面的模型类)
admin.py
from django.contrib import admin
from models import【类名】
admin.site.register(【类名】)
修改数据默认显示名称
步骤:
在【类名】类下添加一个方法_str_(self):return self.【属性】
额外知识:
URL传递参数:r'^/【路径】/(?p<参数名>[0-9]+)/$'
超链接目标地址"{%url 'app_name:url_name' param %}"
其中app_name和url_name都在url配置
url函数的名称参数
- 根urls,写在include()的第二个参数位置,namespace=‘app_name’
- 应用下写在url()的第三参数位置,name=‘url_name’

浙公网安备 33010602011771号