博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MTV框架和django基本命令
阅读量:7079 次
发布时间:2019-06-28

本文共 4773 字,大约阅读时间需要 15 分钟。

框架

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 "
".format(self.title) class Author(models.Model): name = models.CharField(max_length=32, unique=True) books = models.ManyToManyField('Book') def __repr__(self): return "
".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=xxx7. 函数的返回值 HttpResponse('字符串') ——》 页面显示字符串的内容 render(request,'模板的名字',{k1:v1}) ——》 整个HTML文件返回给浏览器 redirect('/index/') 跳转 重定向 响应头 location:/index/

 

 

转载于:https://www.cnblogs.com/perfey/p/9676576.html

你可能感兴趣的文章
【转】iOS学习之Autolayout(代码添加约束) -- 不错不错
查看>>
delete和truncate的一个严重区别
查看>>
访问GUItexture
查看>>
javaScript(4):对象
查看>>
C# 堆与栈、值类型与引用类型、可空类型
查看>>
默认值函数[Python读书]cookbook --20.1 在函数调用中获得常新的默认值默认值函数...
查看>>
字符和文档识别的四十年研究
查看>>
最后一行数据
查看>>
Linux 下smi/mdio总线通信
查看>>
java
查看>>
SPREAD for Windows Forms 控制输入法
查看>>
用语音编程 你想过没?
查看>>
android应用推荐
查看>>
ZeroMQ接口函数之 :zmq_curve_keypair - 生成一个新的CURVE 密钥对
查看>>
Linux文件锁flock
查看>>
135. Candy
查看>>
试想一下,在代码学习Swift!
查看>>
provider: 命名管道提供, error: 40 - 无法打开 SQL Server 联系)
查看>>
lintcode : 跳跃游戏
查看>>
远程方法调用(RMI)原理与示例 (转)
查看>>