www.lynda.com作为全球一流的在线培训网站,一直以高质量的视频课程著称。其课程内容也是紧跟行业潮流,本人最近学了里面的一门课程Learning Python and Django, 分享一下。
课程链接:https://www.lynda.com/Django-tutorials/Up-Running-Python-Django/386287-2.html
获取lynda.com永久会员的链接:https://item.taobao.com/item.htm?id=557746408785
Django简介
Model Views Controller设计思想,主要的目的是解耦合,开发原则是高内聚,低耦合
Model:负责操作数据库,和views打交道
Views:负责接收http request,处理业务逻辑,返回httpResponse
Templates:封装HTML函数搭建虚拟环境
不同的项目可能需要在不同的版本下运行,所以需要建立一个虚拟的环境运行不同的Django项目- 安装虚拟环境的命令:
sudo pip install virtualenv
sudo pip install virtualenvwrapper - 安装虚拟环境的命令
mkvirtualenv py_django - 使用虚拟环境
workon py_django - activate–deactivate
- 安装虚拟环境的命令:
创建Django项目
- 创建django项目
django-admin startproject BookManger - 创建django应用程序
python manage.py startapp Book - 注册django应用程序
myproject/setting.py – INSTALLED APP 添加 应用程序 ‘Book’ - 更改pycharm解释器
linux 输入:which python, 拷贝路径到Pycharm
- 创建django项目
创建模型(model)
分析数据库结构
需要两张数据表
–book_infor -id -name
–heros -id -name -gender -book(foreignkey book_infor)model数据库开发
- 定义模型类
该模型类继承了定义好的models.Model.
代码:
- 定义模型类
from django.db import models
class Book_Info(models.Model):
name = models.CharField(max_length=20)
def __str__(self):
return self.name.encode('utf-8')
class Book(models.Model):
name = models.CharField(max_length=20)
gender = models.BooleanField()
book = models.ForeignKey(Book_Info)
def __str__(self):
return self.name.encode('utf-8')
2. 模型迁移
1. 生成迁移文件
python manage.py makemigrations
2. 执行迁移
python manage.py migrate
python manage.py migrate --list 查看list
3. 启动Django的shell操作数据库
python manage.py shell
- Admin站点管理
- 管理界面本地化
settting.py 更改:
LANGUAGE_CODE = ‘zh-Hans’
TIME_ZONE = ‘Asia/Shanghai’ - 创建管理员
python manage.py createsuperuser
python manage.py runserver
浏览器输入:localhost:8000/admin - 注册模型类
admin.py 里面输入:
- 管理界面本地化
from django.db import models
from .models import Book, Book_Info
admin.site.register(Book)
admin.site.register(Book_Info)
4. 自定义管理页面
class BookAdmin(admin.ModelAdmin):
list_display = ['id', 'name', 'gender', 'book']
class BookInfoAdmin(admin.ModelAdmin):
list_display = ['id', 'name']
admin.site.register(Book, BookAdmin)
admin.site.register(Book_Info, BookInfoAdmin)
视图和URL
定义视图
视图就是views.py上面的一个函数,该函数的第一个参数是request, 返回值必须是httpResponse设置URLconf
settting.py —ROOT_URLCONF = ‘BookManager.urls’设置url.py
- 在prject文件夹下,设置url第一次匹配,假如不是admin,则传入应用程序的作为第二次匹配
url(r”^”, include(“Book.urls”))
2.
正则表达式:
Note: views.py 下面的函数index, 调用时候会自动传入request参数,如果正则表达式里面有组,也会自动传入index(在定义函数的时候设置)作为参数。\
url(r”^$”, views.index)- 在prject文件夹下,设置url第一次匹配,假如不是admin,则传入应用程序的作为第二次匹配
总结MVC流程
模板templates
- 在应用同级目录下创建templates文件夹,单后在templates文件夹中创建应用文件夹。
–templates –app –index.html 设置模板查找路径
setting.py dir = [os.path.join(BASE_DIR, “templates”)]模板接收视图传入的数据
render(request, “Book/index.html”, {“test”:”this is a test”})
html模板中添加:
- {{ test }}
- 在应用同级目录下创建templates文件夹,单后在templates文件夹中创建应用文件夹。