您的位置:首页 > 编程语言 > Go语言

Django的基本操作流程总结

2017-11-23 20:43 302 查看


Django

MTV框架和MVC框架本质上没有什么差别。

概述:用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件中,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。被独特的发展起来用于映射传统的输入,处理和输出功能在一个逻辑的图形化用户界面的结构中。

核心思想:解耦,降低各功能模块之间的耦合性,方便变更,更容易重构代码,最大程度上的实现代码的重用。

MVC:Model(模型)负责业务对象与数据库的对象(ORM)

​View(视图)负责业务逻辑,并在适当的时候调用Model和Template

​Template(模板)负责如何把页面展示给用户

注意:Django还有一个url(路由)分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template

流程:用户用控制器在页面输入访问url->根据url匹配相应的视图(view)函数->视图(view)去模型(model)里取数据->模型(model)去数据库中取数据,将数据返回给视图(view)->视图(view)把要显示的数据返回给模板(template)->模板(template)就是html文件,并返回给用户。


基本流程操作

1.设计表结构

2.配置数据库:对databases进行配置(记得要打开数据库)

​注意:Django中默认使用的是SQLite数据库,python3装的是PyMysql

​1.在init.py中增加如下代码

​importpymysql​pymysql.install_as_MySQLdb()

​2.修改database

DATABASES={
 'default':{
   'ENGINE':'django.db.backends.mysql',
   'NAME':'数据库名称',
   'USER':'用户名',
   'PASSWORD':'密码',
   'HOST':'数据库服务器ip,本地可以使用localhost',
   'PORT':'端口',
 }
}

3.创建应用:一个工程中可以创建一到多个应用,每个应用进行一种业务处理

在cmd终端进入创建的工程目录下:输入
<pythonmanage.pystartappmyApp>

4.激活应用:在setting.py文件中,将myApp应用加入到

INSTALLED_APPS=[
 'django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'myApp',
]


5.定义模型

概述:有一个数据表,就有一个模型与之对应

在项目目录下的models.py中定义模型

fromdjango.dbimportmodels
#Createyourmodelshere.
classGrades(models.Model):
 gname=models.CharField(max_length=10)
 gdate=models.DateTimeField()
 gboynum=models.IntegerField()
 ggirlnum=models.IntegerField()
 isDelete=models.BooleanField()
classStudents(models.Model):
 sname=models.CharField(max_length=20)
 sage=models.IntegerField()
 sgender=models.BooleanField()
 scontend=models.CharField(max_length=40)
 isDelete=models.BooleanField()
 sgrade=models.ForeignKey("Grades")

6.生产数据表

​1.生成迁移文件:pythonmanage.pymakemigrations

​2.执行迁移:pythonmanage.pymigrate

7.测试数据操作

​1.进入pythonshell:pythonmanage.pyshell

​2.引入包:pythonmanage.pymakemigratons

​3.查询:Grades.objects.all()查看班级表中的所有数据

​4.创建数据,,,查看某个对象,,,修改数据,,,,删除数据,,,,(g.delete)

8.启动服务器:格式pythonmanage.pyrunserverip:port

​默认端口为8000,可以修改。pythonmanage.pyrunserver8080


Admin站点管理

概述:负责添加、修改、删除内容,开发这些重复的功能是一件单调乏味,缺乏创造力的工作。为此,Django提供自动生成模块

1.配置Admin:在setting.py文件中的INSTALLED_APPS添加'django.contrib.admin'

​注意:默认已经配置,后面可以使用xadmin进行站点管理,和admin使用和思想基本一致。更多定制。

2.创建管理用户:pythonmanage.pycreatesuperuser

​依次输入用户名,邮箱,密码

3.配置管理的数据表:将要管理的表添加到项目目录下的admin.py文件中注册

fromdjango.contribimportadmin
from.modelsimportGrades,Students
#Registeryourmodelshere.
admin.site.register(Grades)
admin.site.register(Students)


4.自定义管理界面:

​1.ModelAdmin类是模型在Admin界面中的表现形式,通过ModelAdmin的子类,来定义模型在Admin界面的显示方式

classGradesAdmin(admin.ModelAdmin):
 #列表项属性
 list_display=["pk","gname","gdate","gboynum","ggirlnum","isDelete"]
 list_filter=["gname"]
 search_fields=["gname"]
 #添加、修改属性界面
 #fields=["gdate","gname"]
 fieldsets=[
   ("base",{"fields":["gdate","gname"]}),
   ("more",{"fields":["gboynum","ggirlnum","isDelete"]}),
 ]
 #分页
 list_per_page=3
admin.site.register(Grades,GradesAdmin)

​2.属性说明:

​列表页属性

​添加、修改页的属性


视图的基本使用

1.概述:在Django中,视图对应web请求进行回应,视图接收request对象作为第一个参数,包含了请求的信息,视图就是一个python函数,绑定在views.py中

2.定义视图

fromdjango.httpimportHttpResponse
defindex(request):
 returnHttpResponse("sunckisagoodman")

3.修改project目录下的urls.py文件

fromdjango.conf.urlsimporturl,include
fromdjango.contribimportadmin
urlpatterns=[
 url(r'^admin/',admin.site.urls),
 url(r'^',include('myApp.urls'))
]


在myApp目录下创建名为urls.py的文件

fromdjango.conf.urlsimporturl,include
fromdjango.contribimportadmin
from.importviews
urlpatterns=[
#  路由分发
 url(r'^index/$',views.index),
 url(r'^detail/$',views.detail),
]



模板的基本使用

1.概述:模板是html页面,可以根据视图中传递的数据而渲染

2.创建模板:在工程目录下创建的templates目录,用来存放模板

注意:templates目录也可以放到项目目录中

3.配置setting.py文件中的TEMPLATES

TEMPLATES=[
 {
   'BACKEND':'django.template.backends.django.DjangoTemplates',
   'DIRS':[os.path.join(BASE_DIR,"templates")],

4.定义模板

5.在view中使用模板:1.定义路由2.匹配路由url(r'^students/$',views.students)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  django mvc python mysql