博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django简介
阅读量:5037 次
发布时间:2019-06-12

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

一,MVC与MTV模型

  MVC:把web应用分为模型Model,控制器Controller和视图View三层。

    Model模型:负责在数据库中存取数据(通过orm),并且把数据传递给视图VIew

    Controller控制器:负责处理用户输出的数据,决定传递指令给模型还是给视图

    VIew视图:向用户展示信息。

  MTV:Django的的MTV模式本质和MVC一样,只是定义上不同而已

    M 代表模型(Model): 负责业务对象和数据库的关系映射(ORM)。

    T 代表模板 (Template):负责如何把页面展示给用户(html)。

    V 代表视图(View):   负责业务逻辑,并在适当时候调用Model和Template。

    ps:除了以上三层之外,还需要一个URL分发器,它的作用是将一个个URL的页面请求分发给不同的View处理,View再调用相应的Model和Template。

二,下载Django

  方式一:pip install django == 1.11.11(指定版本号)

  方式二:用pycharm中的settings进行安装

  方式三:用pycharm的Terminal命令进行安装

三,创建django项目工程以及应用

  命令行创建:

    创建django项目:django-admin startproject 项目名

    创建app应用:python3 manage.py startapp app01

    启动django项目:python3 manage.py runserver 

    ps:用命令行创建django默认不会自动创建templates文件夹需要你手动自己创建(注意改文件夹路径是否被添加配置文件中)

TEMPLATES = [    {        'BACKEND': 'django.template.backends.django.DjangoTemplates',        'DIRS': [os.path.join(BASE_DIR, 'templates')]        ,        'APP_DIRS': True,        'OPTIONS': {            'context_processors': [                'django.template.context_processors.debug',                'django.template.context_processors.request',                'django.contrib.auth.context_processors.auth',                'django.contrib.messages.context_processors.messages',            ],        },    },]

  pycharm创建:

    创建django项目:FILE >>> new project 选择第二个django 需要注意名字不能有中文,选择本地的解释器,勾选后台管理

    创建app:pycharm命令行创建:python3 manage.py startapp app01

    启动:点击绿色小箭头

 

注意事项:

  1.计算机的名称不能有中文

  2.一个pycharm窗口就是一个项目,不要多个项目放在一个窗口里面

  3.项目名不能起中文

  4.用django一定要保证只有一个在运行状态

  5.一定记得清浏览器的缓存

四,Django各个文件的作用

  在创建app时需要配置文件中注册才能生效!

INSTALLED_APPS = [    'django.contrib.admin',    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.messages',    'django.contrib.staticfiles',    'app01' # 简写    # 'app01.apps.App01Config' # 全称(两者都可以使用)]

  应用名:

    migrations :数据库迁移记录相关数据

    admin.py:django后台管理相关

    models.py :模型表相

    views.py:视图函数相关

  项目名:

    settings.py :配置文件

    urls.py:路由与视图函数的映射关系

  templates:

    项目用到的所有的html文件都放在这个文件夹里面

  manage.py 

    django入口文件

五,三个最基本的操作

  HttpResponse:返回字符串

  render:返回一个html页面

  redirect:重定向

  案例:

    app01下的view.py

from django.shortcuts import render,HttpResponse,redirect# Create your views here.def index(request):    # 返回字符串    return HttpResponse("你好啊 我的奴隶!")def reg(request):    user_dict = {
'name':'jason','password':'123'} # 返回一个html文件 # return render(request,'reg.html',{'user_dict':user_dict}) return render(request,'reg.html',locals()) # 上面所有的信息def login(request): # 重定向(转向第三方网址) return redirect('http://www.xiaohuar.com')

    同时MyDjango下面的urls.py添加

from django.conf.urls import urlfrom django.contrib import adminfrom app01 import viewsurlpatterns = [    url(r'^admin/', admin.site.urls),    url(r'^index/', views.index),    url(r'^reg/', views.reg),    url(r'^login/', views.login),    url(r'^xxx/', views.xxx),]

   ps:django识别到你的代码变话,然后自动重启,但是有时候反应速度比较慢。最好手动重启,也可以多刷新以及浏览器。

  如何用Django 来操作mysql

  第一步:修改settings.py的配置信息(默认为sqlite3,改为mysql):

DATABASES = {    'default': {        'ENGINE': 'django.db.backends.mysql', # 修改数据库引擎        'NAME': 'my_django', # 定义数据库名        'USER':'root', # 用户名        'PASSWORD':'641220', # 密码        'HOST':'127.0.0.1', # IP        'PORT':'3306', # mysql端口    }}

   第二步:在工程名的__init__文件下如下配置:

import pymysqlpymysql.install_as_MySQLdb()

  第三步:在操作数据的应用下的models.py中如下设置表名,字段等等:

from django.db import models__author__ = 'root'# Create your models here.from django.db import modelsclass Student(models.Model):    """    创建如下几个表的字段    """    # 学号 primary_key=True: 该字段为主键    studentNum = models.CharField('studentNum', primary_key=True, max_length=15)    # 姓名 字符串 最大长度20    name = models.CharField('name', max_length=20)    # 年龄 整数 null=False, 表示该字段不能为空    age = models.IntegerField('age', null=False)    # 性别 布尔类型 默认True: 男生 False:女生    sex = models.BooleanField('sex', default=True)    # 手机 unique=True 该字段唯一    mobile = models.CharField('mobile', unique=True, max_length=15)    # 创建时间 auto_now_add:只有在新增的时候才会生效    createTime = models.DateTimeField(auto_now_add=True)    # 修改时间 auto_now: 添加和修改都会改变时间    modifyTime = models.DateTimeField(auto_now=True)    # 指定表名 不指定默认APP名字——类名(app_demo_Student)    class Meta:        db_table = 'student'

  第四步:手动在mysql中创建刚刚设置的数据库(数据库名用刚刚在settings中使用的)

  第五步:生成一个迁移文件,在终端中输入:python3 manage.py makemigrations

  第六步:生成成功之后会在migrations中生成一个0001_initial.py文件。然后再向终端中输入:python3 manage.py migrate

  这样表就创建成功了。

  查询数据:

  第一步:首先再view中定义一个查询函数,取出想要的数据:

def select(request):    # 查询name = tom1的数据    # sql语句已经被django封装好了    result = Student.objects.filter(name='tom1')    """    result为
的对象 需要进行数据处理 """ user_list = [] for i in result: content = {
'studentNum': i.studentNum, 'name': i.name, 'sex': i.sex} user_list.append(content) print(user_list) return render(request,'reg.html',{
'user_list':user_list})

  第二步:使用render将数据放在html文件,并显示:

    
Title
{
% for user in user_list %}
{
% endfor %}
id name sex
{ { user.studentNum }} { { user.name }} { { user.sex}}

  ps:别忘了在urls.py文件中配置新的url后缀。

from django.conf.urls import urlfrom django.contrib import adminfrom app03 import viewsurlpatterns = [    url(r'^admin/', admin.site.urls),    url(r'^insert/',views.insert),    url(r'^select/',views.select) # 调用查询数据的函数]

 

  

  

      

 

 

 

 

  

  

    

    

  

 

转载于:https://www.cnblogs.com/ay742936292/p/10980373.html

你可能感兴趣的文章
性能测试初级篇1(理论知识)
查看>>
ServletConfig与ServletContext
查看>>
1.4 GPU分析
查看>>
VS2012 调试时提示 A remote operation is taking longer than expected (远程操作花费的时间比预期长)解决办法...
查看>>
最大值
查看>>
PowerShell 异常处理
查看>>
Android中的Parcelable接口
查看>>
ebs 请求中选值集信息时报APP-FND-01564: ORACLE error 24345 in fdlget
查看>>
js动态规划---背包问题
查看>>
lua 中处理cocos2dx 的button 事件
查看>>
PageUtil 分页
查看>>
基于.NET的3D开发框架/工具比较
查看>>
Mac item2常用快捷键
查看>>
转!mysql备份与还原数据库
查看>>
Python基础——数据类型、流程控制、常用函数
查看>>
近期在用Gvim,默认样式比较难看,现在调整了一下
查看>>
关于框架的一些学习笔记
查看>>
vSphere中Storage vMotion的流程详解
查看>>
Docker-Mysql-proxy Mysql Proxy实现读写分离
查看>>
mysql 的基本使用命令
查看>>