Django笔记——Python Web 框架

1.Django:即是一个开放源代码的Web应用框架,由Python写成,采用了MVC的框架模式思想,但是有自有的名字MVT,中文文档:https://docs.djangoproject.com/zh-hans/2.0/

MVC框架如图:

Django模式如下:

ORM模型:Django中嵌了ORM框架,ORM框架可以将类(如图书类)和表(如mysql数据库的图书表)对应起来,只需要通过类操作,就可以操作数据库的表,且会自动生成数据库的表。

2. 安装python第三方包:下载python,cmd->py查看python版本->cd C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Scripts进入srcipts目录->pip install 第三方包名。

注意:C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Scripts是默认安装的Py地址。

3. 虚拟环境:就是真实python环境的复制版本。

4. 安装django,创建django项目:

     4.1 安装django: 在C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Scripts命令行下输入pip install django

     4.2 创建django项目:在C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Scripts命令行下输入

django-admin startproject HelloWorld(项目名)

      4.3 创建django项目(即HelloWorld(项目名))的一个应用(Django中一个功能模块对应一个应用,如用户模块,商品模块,购物车模块,订单模块):如在HelloWorld文件夹的命令行下输入py manage.py startapp booktest(应用名,如图书模块)。

       4.4 创建Django项目(helloworld)与应用(booktest)直接的联系:进行应用注册。在helloworld/helloworld下的settings.py中进行设置。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'booktest',   #进行应用(功能模块)的注册。
]

      4.5 启动Django项目: 在Django项目(hellowworld)文件命令行下,执行输入py manage.py runserver。然后返回一个浏览器打开的ip地址,默认是浏览器输入127.0.0.1:8000即可。

      4.6 创建模型类(如图书信息BookInfo):相当于对应数据库的表名(BookInfo)。

from django.db import models


# Create your models here.
#创建与数据表对应的模型类

#1.创建一个图书类BookInfo,该类必须继承models.Model,才是模型类
class BookInfo(models.Model):   #对应数据库的表名(BookInfo)
    #1.1 图书名称(btitle)对应数据表(BookInfo)的列名,CharFiled表示列类型为字符串,max_length表示最大长度字符串为20
    btitle=models.CharFiled(max_length=20)
    #1.2 图书出版日期(bpub_data)对应数据表(BookInfo)的列名,DateFiled表示列类型为日期类型
    bpub_data=models.DateFiled()
    #1.3 注意:不需要创建表(BookInfo)的id,Django会自动生成

#2.创建一个英雄人物类,该类必须继承models.Model,才是模型类
class HeroInfo(models.Model):   #对应数据库的表名(BookInfo)
    #2.1 英雄姓名(hname)对应数据表(HeroInfo)的列名,CharFiled表示列类型为字符串,max_length表示最大长度字符串为20
    hname=models.CharFiled(max_length=20)
    #2.2 英雄性别(hgender)对应数据表(HeroInfo)的列名,BooleanFiled表示列类型为布尔类型,default默认值
    hgender=models.BooleanFiled(default="男")  
    #2.3 英雄备注(hcomment)对应数据表(HeroInfo)的列名,CharFiled表示列类型为字符串,max_length表示最大长度字符串为20
    hcomment=models.CharFiled(max_length=20)
    #2.4 关系属性(hbook)对应数据表(HeroInfo)的列名,与图书类BookInfo有外键关联(ForeignKey)
    hbook=models.ForeignKey("BookInfo")
  

     4.7 将模型类生成表:

              第一步生产迁移文件:在Django项目命令行下输入执行py manage.py makemigrations。会放在booktest/migrations文件下自动生成0001_initial.py。

              第二步执行迁移生成表:在Django项目命令行下输入执行py manage.py migrate

    4.8 在终端命令行中执行该模型类的增删该查:在Django项目命令行下输入执行py manage.py shell。进入终端操作:

form booktest.models import BookInfo
#1. 实例化一个BookInfo模型类
b=BookInfo()
#2. 修改/获取模型类中列的值
b.btitle="天龙八部"
from datetime import date
b.bpub_date=date(2018.10.28)
#3. 保存修改的执行
b.save()
#4. 实例化一个HeroInfo模型类
h=HeroInfo()
#5. 赋值
h.hname="段誉"
h.hgender="男"
h.hcomment="六脉神剑"
#6. 外键关联BookInfo模型类的实例化
h.hbook=b
#7.保存    
h.save()

5. Django后台管理:

          5.1 本地化:即在settings.py中修改时间和语言(默认是美国时间和英文):

#LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'zh-hans'   #使用中文
#TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Shangehai'   #没有北京时间,改成亚洲上海时间

         5.2 创建管理员:在Django项目命令行下输入执行py manage.py createsuperuser->在命令行输入姓名,邮箱,密码->

然后py manage.py runserver启动服务器->在浏览器输入127.0.0.1:8000/admin/即为Django登录页面。

        5.3 在admin.py里创建注册模型类:可以直接显示在浏览器视图中。

6. 配置路由:如127.0.0.1:8000/admin或127.0.0.1:8000/index..............。

        6.1 在helloworld/helloworld/urls.py里面配置:    应用(booktest)的路由。

from django.contrib import admin
from django.urls import path,include,url


#项目的urls文件
urlpatterns = [
    path('admin/', admin.site.urls),  #配置项目,即127.0.0.1:8000/admin显示的视图页面。
    url(r'^',include('booktest.urls')),  #配置除了127.0.0.1:8000/admin路径之外的其他路径在booktest/urls.py文件里面查找。
]

        6.2 在helloworld/booktest/urls.py里面配置:     应用(booktest)里面的视图路由。

from django.urls import url
from booktest import views



#配置views.py里面的index/index2的路径
urlpatterns = [
    url(r'^index$',views.index),  #配置127.0.0.1:8000/index路径
    url(r'^index2$',views.index2),  #配置127.0.0.1:8000/index2路径
]

      6.3 在helloworld/booktest/views.py里面配置:     应用(booktest)里面的视图。

from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
#1.定义视图函数,HttpResponse
#2.定义url配置,建立url和视图的关系

def index(request):  #对应视图127.0.0.1:8000/index
    return HttpResponse("这是在浏览器输入127.0.0.1:8000/index时,页面显示的内容")

def index2(request):  #对应视图127.0.0.1:8000/index2
    return HttpResponse("这是在浏览器输入127.0.0.1:8000/index2时,页面显示的内容")

猜你喜欢

转载自blog.csdn.net/qq_42231156/article/details/83446995