我的Web后端开发学习之旅03

Python MTV(MVC)

M: model 模型层  

	操作数据库

T:  template 模板层 

	显示数据库

V:  view 控制层 

	接收用户请求,响应请求

MTV步骤

打开pycharm创建一个Django项目

根据python版本切换django版本

控制台输入:pip install django==版本号

1.先创建一个app

	控制台输入:python manage.py startapp 名字

	也可以通过Tools中的 Run manage.py Task 打开命令行进行输入

2.在settings里边注册app

将创建的app名写入INSTALLED_APPS=[]

3.在控制层views中写一个视图

#如何写视图 
#1.定义视图函数,在视图函数中必须定义一个request对象
#  用来接收客户端请求,且形参第一个必须是request
#2.创建响应对象 HttpResponse  先导入HttpResponse包
#3.返回响应对象
#4.创建完一个视图函数一定要去urls.py中注册
def index(request):
    print('index')
    msg = 'Hello Django'
    response = HttpResponse(f'<h1>{msg}<h1>')
    return response

4.在urls.py文件中注册

#浏览器地址栏的url映射到视图函数
#先将app中的views导入
from  demo01 import views
urlpatterns = [
    url('admin/', admin.site.urls),
    url('index/',views.index)#路径名最好和函数名相同
    #第一个是浏览器的输入路径,第二个,视图函数名
]

5.启动调试程序

1542074353816

6.返回一个html文件的内容(创建模板)

	步骤:
#1.创建一个视图函数   使用render函数  app创建时在views中已经导好了render包
#  在urls.py注册视图函数
#  url('temp/',views.temp) 
#2.在templates中创建一个和视图函数命名相同的html文件
	def temp(request):
		pass
		return render(request,'templates中创建的html文件名')

7.html使用静态文件(主要是一些css,js,img文件)无数据交互

#1.根目录创建一个static文件夹,下边可以创建类似于h5的资源文件夹(js,css,img)

#2.在settings文件中注册该文件夹(一般写在根目录settings文件最后处)

#	2.1 声明常量  STATICFILES_DIRS (名字别改) 
#        值是元组或者列表 元素可以是相对路径也可以是绝对路径(最好是相对路径)部署时可以使用绝对路径
#		如果文件需要移植就写相对路径,一般采用路径拼接
#	2.2 STATICFILES_DIRS =(os.path.join(BASE_DIR,'static'),) 因是元组  后边的逗号不能省

#3.转入第6步的过程

#4.在html文件中使用导入时用/static/需要引入的文件的名称
#	<link href='/static/css/common.css' rel ='stylesheet' type ='text/css'>	

注意:静态文件的加载是两步完成的,html文件内容通过字符串的格式返回给模板进行渲染,当编译静态文件那一行时,会再次请求服务器加载该静态文件内容,并不是说该文件的内容已经在html文件的内容中了,所以这里会有两次请求

8.html使用动态文件 (有数据的交互,类似于ajax+dom 的操作,结合数据库,使用模板语法)

#1.修改数据库配置,在根目录下的settings.py文件中找到DATABASES
	DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', #该处的数据库看要求切换。这里使用mysql
        'NAME': 'test',   #数据库名
        'HOST':'127.0.0.1', #数据库ip地址
        'PORT':'3306',  #数据库端口
        'USER':'root', #数据库账户名
        'PASSWORD':'root', #数据库密码
        'CHARSET':'utf8', #数据库内容编码格式
    }
}
#2.在数据库中创建一个库,库名与settings.py中设置的保持一致

#3.在pycharm中安装数据库的驱动 pip install pymysql 
#  并在Django中初始化pymysql(根目录的__init__.py文件中)
	import pymysql
     pymysql.install_as_MySQLdb()
        
        
#4.在app文件下的models.py文件中定义模型
#  写一个类继承models.Model并定义属性(对应数据库中的列名)
#  
	class User(models.Model):
        user_id = model.AutoField(primary_key=True)
        username = model.CharField(max_length=64)
        password = model.CharField(max_length=64)
        
#5. 在数据库中创建表,打开控制台,输入下边的代码 
	python manage.py makemigrations app名称  #生成迁移文件
     python manage.py migrate app名称
#默认的表名是   app名称_模型函数名(小写)  
#修改默认表名方法:
	class Meta:
    	db_table = '表名'
#注意:每次改动或者重命名后都要重新执行上边的两行代码        
#放在模型类下边即可

#之后在数据库中往该表中插入若干数据

#6. 先将.models模块中的创建的User类导入 from .models import User
#   接着转入第6步 先创建视图函数 并在urls.py中注册,
#   动态文件重要使用render函数的第三个参数,context 是个字典对象  这就是面向对象操作数据库
	def test_db(request):
        users = User.objects.all() # == SELECT * FROM user
        return render(request,'templates中创建的html文件名',context ={'users':users})
        
#7. 转入第7步 在根目录下创建static文件,放入需要引用的静态文件资源并在根目录下的settings.py文件中注册
		
#8.在templates中创建一个和视图函数相同名字的html文件    

#9.在html界面中使用用模板语法,动态的给元素赋值
<table>
	<tr>
		<th>ID</th>
		<th>用户名</th>
		<th>密码</th>
	</tr>
	{% for user in users %}
 		<tr>
    		<td>{{ user.user_id }}</td>
        	<td>{{ user.username }}</td>
        	<td>{{ user.password }}</td>
    	</tr>
	{% endfor %}
</table>

猜你喜欢

转载自blog.csdn.net/weixin_42533541/article/details/84231014