Django框架 |
您所在的位置:网站首页 › python3框架 › Django框架 |
启动Django下载创建django项目启动django项目创建app应用静态文件配置Request对象方法Django必会HttpResponserenderredirectDjango连接MySQLDjango ORM什么是ORM创建模型数据操作增查改删django请求生命周期流程图扩展知识点
启动Django
下载pip3 install django==1.11.11
创建django项目django-admin startproject 项目名(mysite)
启动django项目cd 项目名(mysite)python3 manage.py runserver IP:PORT
创建app应用python3 manage.py startapp 应用名(app01)
django本身类似一个空壳子,真正的功能是由各个应用组成的
django主要文件介绍 mysite/|-- app01/ # 应用| |-- migrations/ # 数据迁移记录| |-- admin.py # django后台管理| |-- apps.py # 用于app注册使用| |-- models.py # 专门用于操作数据库模型类(orm)| |-- test.py # 测试文件| |-- view.py # 视图函数(视图层)|-- mysite/| |-- settings.py # 项目配置文件| |-- urls.py # 路由与视图函数对应关系(路由层)| |-- wsgi.py # wsgiref模块(不考虑)|-- static/ # 静态文件(css、js、jpg)|-- templates/ # 模版层|-- manage.py # django的入口文件|-- db.sqlite3 # django自带的小型数据库(启动之后才会生成的文件)注意: 如果命令行创建不会自动有templates文件夹,需要自己创建而pycharm会自动帮你创建如果是命令行创建需要在settings.py文件下第57行,添加配置路径如果是命令行创建需要在settings.py文件下第37行下面添加'app01.apps.App01Config',如果是pycharm创建运行可能会报错,需将settings.py文件下第57行/改成逗号 TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')],] 静态文件配置# 在settings.py最下面# 静态文件资源访问接口固定配置 STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static') ]接口前缀动态绑定 {% load static %} Request对象方法 requesthod:获取请求方法request.GET or request.POST:获取GET or POST请求参数,字典形式。request.POST.get('name',default=None):获取POST请求参数request.GET.getlist('name',default=None): 获取GET参数列表request.META:包含当前HTTP请求的Headers头部信息, 字典形式。键值KEY都是大写。比如request.META['REMOTE_ADDR']可获取用户远程IP地址。request.user:获取当前访问用户的所有信息。request.path:获取当前访问路径 Django必会 HttpResponse理解为可以返回给前端浏览器文本类的数据(字符串类型) def index(request): return HttpResponse('Hello world') render返回给前端浏览器html页面,并且提供模板语法 def index(request): # 视图函数必须要接受一个形参request index= {'username':'kevin','age':18} # 第一种传值方式:更加的精确 节省资源(精准传(复杂但节省资源)) # return render(request,'index.html',{'data':user_dict,'date':123}) # 第二种传值方式:当你要传的数据特别多的时候(范围传(简单但不节省资源)) """locals会将所在的名称空间中所有的名字全部传递给html页面""" return render(request,'index.html',locals()) redirect重定向 def index(request): return redirect('https://www.changchen.cc') Django连接MySQL# 1.找到默认配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), }# 2.修改配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': '数据库名', 'HOST': '127.0.0.1', 'PORT': 3306, 'USER': 'root', 'PASSWORD': '', } Django ORM 什么是ORM对象关系映射(Object Relational Mapping,简称ORM)简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。ORM在业务逻辑层和数据库层之间充当了桥梁的作用# 在与 settings.py 同级目录下的 __init__.py 中引入模块和进行配置import pymysqlpymysql.install_as_MySQLdb() 创建模型class Users(models.Model): cid = models.AutoField(primary_key=True) # 等价于:cid int primary key auto_increment name = models.CharField(max_length=32) # 等价于:name varchar(32) pwd = models.IntegerField() # 等价于:pwd int执行数据库迁移命令 python3 manage.py makemigrations # 记录操作python3 manage.py migrate # 将操作迁移到数据库补充: 第一次执行迁移命令 django还会自动创建一些默认需要使用到的表。为了区分不同应用下可能会出现相同的表名,所以自动加上了应用的前缀。表的主键可以不写 orm会自动帮你写一个名为id的主键每次修改了跟数据库相关的python代码,都需要重新执行迁移命令 数据操作在需从 app01 目录引入 models.py 文件 from app01 import models 增user_obj = models.Users.objects.create(name='kevin',pwd=123)# 可以通过 对象.字段名 获取值print(user_obj.cid) 查models.Users.objects.filter(cid=1) 改models.Users.objects.filter(cid=1).update(name='kevin666') 删models.Users.objects.filter(cid=1).delete() django请求生命周期流程图 扩展知识点浏览器向后端发送请求,在经过 Django 中间件之后,会先从**缓存数据库**寻找数据,如果没有则向后端数据库要数据。后端返回数据结果的同时在缓存数据库保存一份,类似于 DNS 解析过程,提高效率和响应时间 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |