Django简单总结

以下内容是个人学习随手记录,就是介绍了下简单的使用;

欢迎大家吐槽,接下来就是激情的时刻,准备好啤酒饮料矿泉水,开整!!!

-----------------------------------------------------------------------------------------------------------------------------

Django框架的实现都是基于HTTP协议的!

HTTP:超文本传输协议:

HTTP请求:

1)请求头
2)消息报头
3)请求正文

HTTP响应码:

(1)1xx:信息响应类,表示接收到请求并且继续处理
(2)2xx:处理成功相应类,表示动作成功被接收、理解和接受     常见的是200
(3)3xx:重定向相应类
(4)4xx:客户端错误   常见的是404
(5)5xx:客户端错误,服务器内部错误

响应正文:比如网页源代码

Django框架:采用的模式是MTV   
M:模型  models  创建数据表使用
T:视图   templates  例如前台html页面
V:控制器  views  业务逻辑页


使用Django创建Web网站工程流程:

一、settings.py文件中:数据库的配置

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME':'restframework',
'USER':'root',
'PASSWORD':'111111',
'HOST':'127.0.0.1'
}
}
LANGUAGE_CODE = 'en-us' # 语言配置
TIME_ZONE = 'UTC' # 时区设置
USE_TZ = False # 让设置的时区生效
# 请求静态文件的路径
STATIC_URL = '/static/'
# 静态文件存放的路径
STATICFILES_DIRS = (
os.path.join(BASE_DIR,'static')
)
# 登录使用访问的路径,pro01为子工程的名字
LOGIN_URL = '/pro01/login/'

# 上传文件的URL访问路径
MEDIA_URL = '/pro01/upload/'
# 上传文件的路径
MEDIA_ROOT = os.path.join(BASE_DIR,'upload')
from django.contrib import admin
from pro01 import urls as pro01_urls

urlpatterns = [
    url(r'^admin/', include(admin.site.urls,)),
    url(r'^pro01/',include(pro01_urls,namespace='pro01')),
]

二、主文件夹下urls.py文件中的配置,路由(url)的配置或者分发

例:

from django.conf.urls import include, url

from django.contrib import admin
from pro01 import urls as pro01_urls


urlpatterns = [
    url(r'^admin/', include(admin.site.urls,)),
    url(r'^pro01/',include(pro01_urls,namespace='pro01')),
]

三、子工程的urls.py文件的配置,是访问rul的地址和业务逻辑的关联,

例:

from django.conf.urls import url
import views


urlpatterns = [
    url(r'^$', views.index,name='index')    # 首页路径配置

    url(r'^article/$',views.article,name='article')     # 子页路径配置
]


四、子工程的views种的业务逻辑配置与url和模版template文件夹种的模版文件要相互对应

例:

#coding:utf8
from django.shortcuts import render
import datetime
# Create your views here.

def index(request):

    langeuage = ['英语','汉语']
    lang1 = []
    var1 = '你大爷'
    class Human():
        name = '张三'
        age = 18
        def sayhello(self):
            return 'hello python'
    human = Human()
    var2 = 'Alice'
    time1 = datetime.datetime.now()
    lin = 'dajfj diiow oiajif'
    context = {
        'langeuage':langeuage,
        'var1':var1,
        'human':human,
        'var2':var2,
        'time1':time1,
        'lin':lin,
    }
    return render(request,'app01/index.html',context)

五、模版文件template文件夹中的简单使用案例:

{% load myfilters %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>
    {#if嵌套for#}
    {% if lang1 %}
        {% for foo in langeuage %}
            {{ foo }}
        {% endfor %}
    {% else %}
        没有语言
    {% endif %}
    <hr>
    {#单变量#}
    {{ var1 }}
    <hr>
    {{ human.name }}----{{ human.age }}
    <hr>
    {{ var2 | upper }}
    <hr>
    {{ time1 | date:'Y-m-d' }}
    <hr>
    {{ lin }}
    <hr>
    {{ lin | filter1 }}
</body>
</html>

六、子项目models.py文件种的使用案例:每一个类就对应数据库中的一个表

例:
#coding:utf8
from django.db import models
from django.contrib.auth.models import  User
# Create your models here.

class Student(models.Model):   # 学生表
    name = models.CharField(verbose_name='姓名',max_length=32)
    age = models.IntegerField(verbose_name='年龄')
    gender = models.BooleanField(verbose_name='性别')
    score = models.DecimalField(verbose_name='成绩',max_digits=5,decimal_places=2)
    email = models.EmailField(verbose_name='邮箱',null=True,blank=True)
    add_time = models.DateTimeField(verbose_name='添加时间',null=True)
    # 外键
    gra = models.ForeignKey('Grade')
    # 后台数据表的名称
    def __unicode__(self):
        return self.name
    class Meta:
        verbose_name_plural = verbose_name = '学生'

class Grade(models.Model):     # 班级表
    name = models.CharField(verbose_name='班名',max_length=64)
    def __unicode__(self):
        return self.name
    class Meta:
        verbose_name_plural = verbose_name = '班级'

#用户扩展信息表
class UserProfile(models.Model):
    nick = models.CharField(max_length=30) # 昵称
    user = models.OneToOneField(User) # 跟User表建立一对一的关系
    friends = models.ManyToManyField('self',blank=True) # 跟自己建立一个多对多的关系
    def __unicode__(self):
        return self.nick

七、子项目中admin.py文件,主要用来将数据库的表渲染后django的admin后台:

例:
#coding:utf8
from django.contrib import admin
import models
# Register your models here.

# 表渲染到后台
admin.site.register(models.Student)
admin.site.register(models.Grade)
admin.site.register(models.Userprofile)

搞笑一则:能动手尽量别吵吵


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值