Django

Django 框架

#c\s结构:

例如:要想使用qq就需要在电脑上装一个qq客户端,然后通过qq软件访问服务器,进行操作。

#B\S结构:

例如:想要使用京东购物,只需要在电脑浏览器访问jd.com

 MVC设计模式

MVC、MVT实现了前后端和数据的分离,实现了程序可维护性可扩展性.

M==> Model ==>针对数据库层面操作==>程序调用模型.`模型调用数据库

V==>view==>针对用户界面数据显示==>模板(HTML)

C==> contraller==>接收用户请求,调用模型和视图,给用户响应。

Django 采用MVT模式

M==>数据层

V==>业务逻辑

T==>template ==>html

##使用djiango搭建项目

#在一个目录下执行以下命令,就会创建一个web目录

$ django-admin startproject web

##运行项目

$ python3 manage.py runserver

#浏览器访问http://127.0.0.1:8000/

#默认监听本机地址127.0.0.1,可以修该settinng.py配置文件

ALLOWED_HOSTS = ['*']

##运行项目

$ python3 manage.py runserver 0:8000

#创建一个应用命名为home

在Web目录下

$ python3 manage.py startapp home

#打开views.pyfrom django.shortcuts import render

from django.http import HttpResponse

# Create your views here.

#创建视图函数

def index (request):

     return HttpResponse('HelloWorld!!!')

#找到web/web/urls

from django.conf.urls import url,include

from django.contrib import admin

urlpatterns = [

    url(r'^admin/', admin.site.urls),

    url(r'^', include('home.urls')),

]

#在home应用中创建urls.py

from django.conf.urls import url,include

from.import views

urlpatterns = [

    url(r'^$', views.index),

]

请求流程

用户输入URL地址发起请求,服务器收到请求后,交给根路由(项目同名下的urls.py)

根路由解析后制定应用下子路由,

子路由解析地址,调用对应视图函数响应

##使用模板文件

找到setting.py文件,配置模板目录

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',

            ],

        },

    },

]

  1. 在manage.py的同级目录下创建templates文件夹
  2. 在视图函数中使用render函数加载制定模板

def demo(request):

   return render(request,'a.html')        

3.

路由

路由就是在urls 中进行规则的配置

按照从上往下顺序执行

如果匹配到则加载指定的视图

##路由参数

路由参数就是定义在路由规则时,使用小括号()括起来的内容,将作为参数传递给视图函数

路由参数就是把URL路径中一部分作为参数来使用。

def acc(request,ID):

return HttpResponse('12553')

url(r'^acc/([0-9]{1})/$', views.acc),

##命名组,命名参数

命名组和路由参数一样把URL路径中一部分作为参数来使用

不同的是 命名组会把当前参数作为关键字传给视图函数

因此视图函数必须有为对应的参数

def aac(request,aa):

     return HttpResponse('52199')

url(r'^aac/(?P<aa>[0-9]{1})/$', views.aac)

##URL反向解析

Model模型

  1. 创建mydb数据库

#create databases mydb;

  1. 在Django中配置数据库

修改setting.py文件中的DTTABASES 配置项

# DATABASES = {

    'default': {

        'ENGINE': 'django.db.backends.mysql',

        'NAME': 'mydb',

        'USER':'root',

        'PASSWORD':'123456',

        'HOST':'localhost',

        'PORT':'3306',

}

  1. 告诉Django载客下来的MySQL操作中使用pymysql

打开mysite/_init_.py,写入以下代码(setting同级目录):

import pymysql

pymysql.install_as_MySQLdb()

开发流程

1.在models.py中定义模型类,继承models.Model

from django.db import models

#自定义模型

class User(models.Model):

    username=models.CharField(max_length=50)

    email=models.CharField(max_length=100)

    age=models.IntegerField()

    #方法

2把应用加入settings.Py文件的installed_app项

INSTALLED_APPS = [

    'django.contrib.admin',

    'django.contrib.auth',

    'django.contrib.contenttypes',

    'django.contrib.sessions',

    'django.contrib.messages',

    'django.contrib.staticfiles',

'home',]

3生成迁移文件

#python3 manage.py makemigrations

  1. 执行迁移

#python3 manage.py  migrate

  1. 使用模型进行curd操作

在视图函数中使用模型

  1. 视图函数中导入models

from.import models

def mod_user(request):

#    使用模型进行数据的查询

    res = models.User.objects.all()

print(res)

#<QuerySet [<User: User object>]>

#zhangshan

    for x in res:

        print(x.username)

    return HttpResponse('b.html')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

新手村扛把子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值