1简介
python web框架的世界里充满了选择。Flask、Pyramid和Django。它们是微框架和商业级web服务的典范。django(大而全,注重开发效率) flask tornado(轻量型,注重的是性能,处理高并发)
虚拟环境的创建(python3环境):
创建3的语法:mkvirtualenv -p python3 虚拟环境的名字
退出命令:deactivate
开启命令:workon 虚拟环境的名字
删除命令:rmvirtualenv 虚拟环境的名字
3、创建项目
创建项目的语句:django-admin startproject HelloWorld(项目名字),会生成如下文件
manage.py 项目管理文件,用来管理项目
watercar:项目同名文件夹
├── init.py表示我们这个文件可以被使用过
├── settings.py 配置文件(数据库,邮箱等的配置)
├── urls.py项目的所有的地址配置
└── wsgi.py 就是我们django 小型服务器的入口文件
创建APP:python manage.py startapp 模块名字
HelloWorld: 项目的容器。
manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
HelloWorld/__init__.py: 一个空文件,告诉 Python 该目录是一个 Python 包。
HelloWorld/settings.py: 该 Django 项目的设置/配置。
HelloWorld/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。
HelloWorld/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。
4、MVC框架与MVT框架
MVT模式
Django是一款python的web开发框架
与MVC有所不同,属于MVT框架
核心:解耦
目的:高内聚,低耦合
M:model 与数据库进行交互
V:视图,处理业务逻辑
T:模板,渲染数据
MVC模式
大部分开发语言中都有MVC框架
MVC框架的核心思想是:解耦
降低各功能模块之间的耦合性,方便变更,更容易重构代码,最大程度上实现代码的重用
m表示model,主要用于对数据库层的封装
v表示view,用于向用户展示结果
c表示controller,是核心,用于处理请求、获取数据、返回结果
5、开启服务器指令
python manage.py runserver 后面可加端口数值,默认8000
建表语句
class UserInfo(models.Model):
user_name = models.CharField(max_length=20)
password = models.CharField(max_length=20)
email = models.CharField(max_length=20)
phone = models.IntegerField()
class UserAddress(models.Model):
detail = models.CharField(max_length=50)
user = models.ForeignKey('UserInfo')
6
生成迁移文件
python manage.py makemigrations
执行迁移文件
python manage.py migrate
7
更改数据库:
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’:’waterDB’,
‘USER’:’root’,
‘PASSWORD’:’mysql’,
‘PORT’:3306,
‘HOST’:’localhost’
}
8、安装pymysql 模块,并且在项目的同名文件夹下的————init.py文件下添加语句
import pymysql
pymysql.install_as_MySQLdb()
9、外键的问题
外键,一对多的关系中,外键写在多的一方
user = models.ForeignKey(‘UserInfo’)
11、orm查询语句
11、1查询所有
UserInfo.objects.all() 得到是多个对象
11、2 查询指定的对象
obj1 = UserInfo.objects.get(id=1) id为1的对象
11、3 查询指定的字段
obj1.user_name 对象1的名字
11、4 修改指定字段的值
obj1.password = 54321
obj3.user_name=’老张’
obj3.password = 123456
obj3.email=’123’
obj3.phone=123
obj3.save() 保存
11、建立超级管理员
python manage.py createsuperuser;
http://127.0.0.1:8000/admin/
12、注册模块到admi from user.models import UserInfo,UserAddress
admin.site.register(UserInfo) 将userinfo信息展示到网页上
admin.site.register(UserAddress) 将useraddress信息展示到网页上修改配置
13 setting修改配置
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
14、展示中文
model中的创建的类 返回用户的名字,从来能在网页上显示中文名字
def __str__(self):
return self.user_name
15、改变显示列名
class UserInfoAdmin(admin.ModelAdmin):
list_display = ['id','user_name','password','email','phone']
admin.site.register(UserInfo,UserInfoAdmin)
16、首先我们要把user的url注册到项目的同名文件的url.py文件里
url(r’^’,include(‘user.urls’))
17、创建user的urls.py文件
from django.conf.urls import include, url
from user import views
urlpatterns = [
# 127.0.0.1/index
url(r'^index$',views.index), #匹配index 返回views的index函数
url(r'^user$',views.user_hahha)
]
18 设置views 的index函数
from django.http import HttpResponse
# Create your views here.
def index(request):
return HttpResponse('欢迎')
19、模板的使用
1 增加模板的路径’DIRS’: [os.path.join(BASE_DIR,’templates’)],
2 项目文件夹下创建templates文件夹 在模板文件夹下增加模板
3 在视图函数里,进行模板的调用
def index(request):
# return HttpResponse(‘欢迎’)
context = {‘bianliang’:’假设是数据库取出来的数据,我自己瞎写的’}
return render(request,’index.html’,context=context)
4 修改或增加视图函数
5 设置模板函数