MTV框架和django基本命令
Posted perfey
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MTV框架和django基本命令相关的知识,希望对你有一定的参考价值。
框架
MVC和MTV框架 1. MVC M: model 模型 对数据库进行操作 V:view 视图 给用户提供页面 C:controller 控制器 负责调度 传递指令 2. MTV: M: model 模型 ORM 对数据库进行操作 ,相当于MVC中的model T:template 模板 对html文件进行渲染 ,相当于MVC中的view V: view 视图 函数 负责业务逻辑 ,相当于MVC中的controller
django命令
1. django的所有命令 1. 安装django pip install django==1.11.15 2. 创建项目 django-admin startproject 项目名 3. 启动项目 cd 项目目录 python manage.py runserver # 127.0.0.1:8000 python manage.py runserver 80 python manage.py runserver 0.0.0.0:80 4. 创建APP python manage.py startapp app01 注册APP ‘app01.apps.App01Config‘ 5. 数据库迁移 python manage.py makemigrations # 检查models.py是否有变化,记录变化 app01/migrations python manage.py migrate # 将变更记录同步到数据库中 2. django的配置 1. 注释csrf中间件 可以提交POST请求 2. 数据库的配置 ENGINE: mysql NAME: 数据库名字 USER: 用户名 PASSWORD: 密码 HOST: ip PORT: 3306 3. 静态文件的配置 STATIC_URL = ‘/static/‘ # 别名 STATICFILES_DIRS = [ os.path.join(BASR_DIR,‘static‘), os.path.join(BASR_DIR,‘static1‘), ] 4. TEMPLATES DIRS os.path.join(BASR_DIR,‘templates‘) 5. INSTALLED_APPS=[ ‘app01‘, ‘app01.apps.App01Config‘ ] 3. 对象和数据库的对应关系 类 —— 》 数据表 对象 —— 》 数据行 属性 —— 》 字段 4. django使用mysql数据库流程: 1. 创建一个mysql数据库 2. settings中写配置 DATABASES = { ‘default‘: { ‘ENGINE‘: ‘django.db.backends.mysql‘, ‘NAME‘: ‘library‘, ‘USER‘: ‘root‘, ‘PASSWORD‘: ‘‘, ‘HOST‘: ‘127.0.0.1‘, ‘PORT‘: 3306, } } 3. 告诉django使用pymysql的模块连接mysql数据库 在与settings同级的目录下的__init__.py中写代码: import pymysql pymysql.install_as_MySQLdb() 4. 在app01/models.py中写类(继承models.Model) class Publisher(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=32, unique=True) class Book(models.Model): id = models.AutoField(primary_key=True) title = models.CharField(max_length=32, unique=True) publisher = models.ForeignKey(to=‘Publisher‘, on_delete=models.CASCADE) def __repr__(self): return "<Book object: {} >".format(self.title) class Author(models.Model): name = models.CharField(max_length=32, unique=True) books = models.ManyToManyField(‘Book‘) def __repr__(self): return "<Author object: {} >".format(self.name) __str__ = __repr__ 5. 执行数据库迁移的命令 python manage.py makemigrations python manage.py migrate 5. ORM操作 1. 查 from app01 import models models.Publisher.objects.get(id=1,name=‘xx‘) # 获取一个对象 —— 》一个对象 models.Publisher.objects.all() # 获取所有对象 ——》 queryset 对象列表 models.Publisher.objects.filter(id=1,name=‘xx‘) # 获取满足筛选条件的所有对象 ——》 queryset models.Publisher.objects.all().order_by(‘-id‘) 属性: pub_obj.id pub_obj.name 外键: book_obj.id book_obj.title book_obj.publisher ——》 书籍关联的出版社对象 book_obj.publisher_id ——》 书籍关联的出版社对象的id 多对多: autho_obj.id autho_obj.name autho_obj.books ——》管理对象 autho_obj.books.all() 2. 增 pub_obj = models.Publisher.objects.create(name=‘新的出版社名字‘) 外键: models.Book.objects.create(title=‘新的书名‘,publisher=pub_obj) models.Book.objects.create(title=‘新的书名‘,publisher_id=pub_obj.id) 多对多: autho_obj = models.Author.objects.create(name=‘作者名字‘) autho_obj.books.set([1,3,5]) 3.删 models.Publisher.objects.get(id=1,name=‘xx‘).delete() models.Publisher.objects.all().delete() 4. 改 pub_obj.name = ‘新的名字‘ pub_obj.save() book_obj.title = ‘新的书名‘ book_obj.publisher = pub_obj # book_obj.publisher_id = 1 book_obj.save() autho_obj.name = ‘新的名字‘ autho_obj.save() autho_obj.books.set([1,2,3]) 6. request ——》 封装请求的所有内容 request.method ——》 请求的方式 GET POST request.POST ——》 post请求提交的数据 字典 request.POST[‘id‘] request.POST.get(‘id‘,) request.GET ——》 URL的参数 127.0.0.1:80/del_book/?id=1&name=xxx 7. 函数的返回值 HttpResponse(‘字符串‘) ——》 页面显示字符串的内容 render(request,‘模板的名字‘,{k1:v1}) ——》 整个HTML文件返回给浏览器 redirect(‘/index/‘) 跳转 重定向 响应头 location:/index/
以上是关于MTV框架和django基本命令的主要内容,如果未能解决你的问题,请参考以下文章