django框架的使用流程(使用mysql数据库)

最近学习到django框架,记录一下这个框架的使用流程,首先理清MVT三者之间的联系是必要的。

1.基本流程

打开cmd

1.到目标文件夹下创建项目:

django-admin startproject pro_name

2.cd进入到项目下,开始创建应用

python manage.py startapp app_name

3.注册应用。
到项目里的setting.py下注册应用
在这里插入图片描述
4.在setting下更改database为mysql:

'default': {
        # 'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        'ENGINE':'django.db.backends.mysql',
        'NAME':'test',#数据库名
        'USER':'root',#账户
        'PASSWORD':'password', #账户密码
        'HOST':'localhost', #指定mysql位置,本地用localhost,其他电脑用IP地址
        'POST':3306,#端口号,本地默认的3306
    }

5.书写app的models.py,设计数据库

例子:

from django.db import models

# Create your models here.
# 一类
class BookInfo(models.Model):
	'''图书模型类'''
	#图书名称
	btitle = models.CharField(max_length=20)
	#出版日期
	bpub_date = models.DateField()
	#阅读量
	bread = models.IntegerField(default=0)
	#评论量
	bcomment = models.IntegerField(default=0)
	#删除标记
	isDelete = models.BooleanField(default=False)

#多类
class HeroInfo(models.Model):
	#英雄名
	hname = models.CharField(max_length=20)
	#性别
	hgender = models.BooleanField(default=False)
	#备注
	hcomment = models.CharField(max_length=200)
	# 关系属性
	hbook = models.ForeignKey('BookInfo')
	#删除标记
	isDelete = models.BooleanField(default=False)

7.设计完成模型类,生成与之对应的表
7.1生成迁移文件

python manage.py makemigrations app_name

若报mysql.db在这里插入图片描述
下载安装pymysql,下载pymysql地址,并到项目的__init__.py里面写上(若已安装,直接书写下面的代码)

import pymysql
pymysql.install_as_MySQLdb()

7.2执行迁移生成表

python manage.py migrate

另附:
{mysql的基础操作,mysql -uroot -p;
show databases;
use 数据库名;
show tables;
desc 表名; #表结构
insert into 表名(hanme,hgender,hbookid) values(对应的值),(对应的值),(对应的值)}
在这里插入图片描述
生成表的默认格式:应用名_模型类

6.启动web服务器 python manage.py runserver

2.附:小例子深入理解MVT三者之间的关系:

1)图书信息展示页
a)设计url,通过浏览器访问http://127.0.0.1:8000/index 时显示图书信息页面。
b)设计url对应的视图函数index。
查询出所有图书的信息,将这些信息传递给模板文件。
c)编写模板文件index.html。遍历显示出每一本图书的信息增加新建和删除的超链接。

步骤:
1.到应用views创建index函数

from django.shortcuts import render
from booktest.models import BookInfo
# Create your views here.
def index(request):
	'''显示图书信息'''
	#1.查询出所有图书的信息
	books = BookInfo.objects.all()
	#2.使用模板

2.创建模板
在项目下创建模板文件夹,templates。
修改项目的settings.py 下的TEMPATES中dir

'DIRS': [os.path.join(BASE_DIR,'templates')],#设置模板目录

3.到templates新建模板文件。首先到templates先新建一个与应用同名的文件夹,在到该目录下创建模板文件。在这里插入图片描述
4.到应用里使用模板,views下添加代码。

	#2.使用模板
	return render(request,'booktest/index.html',{'books':books})  

在这里插入图片描述
5.配置url。
第一次配置到项目的url。

from django.conf.urls import url,include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'^',include('booktest.urls')),#包含booktest应用的urls文件
]

到应用下创建urls.py文件
在这里插入图片描述
写入内容

from django.conf.urls import url
from booktest import views
urlpatterns = [
	url(r'^index$',views.index)
]

6.编辑index.html文件。

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>图书信息</title>
</head>
<body>
	<ul>
		{% for book in books %}
		<li>{{ book.btitle }}</li>
		{% endfor %}
	</ul>
	
</body>
</html>

此时出现基本的效果:
在这里插入图片描述

大致梳理一下这些文件间的脉络:
首先输入地址:找到项目目录下的 urls.py,进行正则匹配,转到了应用下的 urls.py,再次进行正则匹配,转到view下的index,回传的是index.html文件。继续增加与删除超链接的编写。

猜你喜欢

转载自blog.csdn.net/weixin_37127253/article/details/84112082