本文件简单介绍了Django开发web的步骤,练习源码点击下载
-
安装虚拟环境
pip install virtualenv -
虚拟环境创建和删除
创建:mkvirtualenv py_django(虚拟环境名)
删除:
rmvirtualenv py_django(虚拟环境名)需要先退出虚拟环境
-
虚拟环境使用
启动:Linux:workon py_django
Windows:执行虚拟环境目录下py_django\Scripts\activate.bat停止:
Linux:deactive
Windows:执行虚拟环境目录下py_django\Scripts\deactivate.bat -
Django需要的依赖包
celery==3.1.25
celery-with-redis=3.0
django-celery=3.1.17 -
创建项目
django-admin startproject test1(项目名称)
-
创建应用
进入项目目录
python manage.py startapp booktest(应用名) -
安装应用
在test1/settings.py中INSTALLED_APPS下添加应用名称
INSTALLED_APPS = (
‘django.contrib.admin’,
…
‘django.contrib.staticfiles’,
‘booktest’,
) -
使用模型类
-
数据操作
进入项目shell,进行简单的API操作
按Ctrl+d或输入quit()可以退出shell
进入:python manage.py shell-
首先引入booktest/models中的类
from booktest.models import BookInfo,HeroInfo -
查询所有图书信息
BookInfo.objects.all() -
新建图书对象
b=BookInfo()
b.title=‘射雕英雄传’
from datatime import date
b.pub_date=date(2019,1,12)
b.save()
BookInfo.objects.all() -
改写操作
from booktest.models import BookInfo,HeroInfo
b=BookInfo.objects.get(id=1)
b.title=‘神雕侠侣’
b.save() -
删除操作
b.delete() -
关联对象操作
from booktest.models import BookInfo,HeroInfo
from datetime import date
b=BookInfo()
b.title=‘射雕英雄传’
b.pub_date=date(2019,1,12)
b.save()
h=HeroInfo()
h.name=‘郭靖’
h.gender=True
h.content=‘降龙十八掌’
h.book=BookInfo.objects.get(id=2)
h.save()根据Book关联找HeroInfo
book=BookInfo.objects.get(id=2)
book
book.heroinfo_set.all()根据Hero找BookInfo
from booktest.models import BookInfo,HeroInfo
h=HeroInfo()
h.book
-
-
后台管理
- 管理界面本地化
本地化是将显示的语言、时间等使用本地化
打开test1/settings.py文件,找到语言编码、时区的设置项,将内容改为如下:
LANGUAGE_CODE = ‘zh-Hans’
TIME_ZONE = ‘Asia/Shanghai’ - 创建管理员
创建管理员执行如下,按提示输入用户名、邮箱、密码
python manage.py createsuperuser
启动服务器
python manage.py runserver
打开浏览器默认地址:http://127.0.0.1:8000
后台地址:http://127.0.0.1:8000/admin - 注册模型类
test1/booktest/admin.py
- 管理界面本地化
-
试图
-
创建试图
test1/booktest/views.py
#coding:utf-8
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
#HttpRquest
def index(request):
#HttpResponse
#return HttpResponse(‘hello world’)
context={‘title’:‘图书列表’,‘list’:range(10)}
return render(request,‘booktest/index.html’,context)方法render包含3个参数 第一个参数为request对象 第二个参数为模板文件路径 第三个参数为字典,表示向模板中传递的上下文数据
-
配置URL
test1/test1/urls.py
urlpatterns = [
url(r’^admin/’, include(admin.site.urls)),
+ url(’^’,include(‘booktest.urls’)),
]
在booktest中创建urls.py文件
from django.conf.urls import url
import views
urlpatterns=[
url(’^index/$’,views.index)
] -
访问
后台地址:http://127.0.0.1:8000/index
-
-
模板
- 创建模板
为应用booktest下的试图index创建模板,目录结构如下:
test1/templates/booktest/index.html - 配置路径
test1/test1/settings.py中
TEMPLATES=[
‘DIRS’: [os.path.join(BASE_DIR,‘templates’)],
]
- 创建模板
-
总结
-
模型类(M)
a、在Models.py中定义模型类
b、生成迁移
c、执行迁移 -
注册admin
a、创建超级管理员
b、注册模型类
c、登陆后台管理数据 -
试图(V)
a、在views.py中定义试图
b、配置url -
模板(T)
a、配置settings.py
b、创建目录及文件
c、编辑模板文件
d、在试图中调用 -
完成
-