参考自菜鸟教程
###首先介绍MVC
###Django管理工具
django-admin.py
命令
###创建新项目 HelloWorld
django-admin.py startproject HelloWorld
###接下来可以进入HelloWorld目录输入命令启动服务器
./manage.py runserver 0.0.0.0:8000
####0.0.0.0 让其它电脑可连接到开发服务器,8000 为端口号。如果不说明,那么端口号默认为 8000。(这里我把manage.py的打开方式换为了python3)
###修改urls.py 文件
绑定 URL 与视图函数
这里^hello$
匹配到url则跳转到 view.hello 视图
这里直接返回了HTML,不符合MVC的思想。
###创建模板文件夹
修改settings.py 中模板DIRS
的默认位置
修改setting.py中的数据库配置
###Django模板标签
变量使用双括号 {{var_name}}
###创建app
Django规定,如果要使用模型,必须要创建一个app。
使用命令./manage.py startapp TestModel
创建名为TestModel的app模型。
开始遇到了问题:
运行 pip3 install mysqlclient
解决
###表名组成结构为:应用名_类名
尽管我们没有在models给表设置主键,但是Django会自动添加一个id作为主键。
###Django操作数据库
# -*- coding: utf-8 -*-
from django.http import HttpResponse
from TestModel.models import Test
# 数据库操作
def testdb(request):
#test1 = Test(name='ooc')
#test1.save()
#向test表中添加ooc字符串
#return HttpResponse("<p>数据添加成功!</p>")
response = ""
response1 = ""
# 通过objects这个模型管理器的all()获得所有数据行,相当于SQL中的SELECT * FROM
list = Test.objects.all()
# filter相当于SQL中的WHERE,可设置条件过滤结果
response2 = Test.objects.filter(id=1)
# 获取单个对象
response3 = Test.objects.get(id=1)
# 限制返回的数据 相当于 SQL 中的 OFFSET 0 LIMIT 2;
Test.objects.order_by('name')[0:2]
#数据排序
Test.objects.order_by("id")
# 上面的方法可以连锁使用
Test.objects.filter(name="ooc").order_by("id")
# (更新操作)修改其中一个id=1的name字段,再save,相当于SQL中的UPDATE
test1 = Test.objects.get(id=1)
test1.name = 'Google'
test1.save()
# 另外一种方式
#Test.objects.filter(id=1).update(name='Google')
# 修改所有的列
# Test.objects.all().update(name='Google')
# (删除操作)删除id=1的数据
test1 = Test.objects.get(id=1)
test1.delete()
# 另外一种方式
# Test.objects.filter(id=1).delete()
# 删除所有数据
# Test.objects.all().delete()
# 输出所有数据
for var in list:
response1 += var.name + " "
response = response1
return HttpResponse("<p>" + response + "</p>")
###Django表单处理
####Django表单学习