一、环境搭建
使用python工具pip,是python的软件包管理器
- 安装pip
sudo apt install python-pip (python2)
sudo apt install python3-pip (python3)
- 使用pip3安装需要用的包:
sudo pip3 install pymysql==0.7.11
sudo pip3 install pillow
sudo pip3 install Django==1.11.8
使用pip3 list命令可以查看当前环境安装的包,可以查看是否安装成功
二、Django
- 使用
django-admin startproject day01(工程名)
2. 启动项目
进入工程中 cd day01
通过manage.py 启动项目:./manage.py runserver
输入网址测试项目:http://localhost:8000/
- 工程的主文件夹
2 wsgi.py 应用服务器配置文件
3 settings.py
项目主配置文件
a.BASE_DIR 开发过程绝对路径
b.debug 开发过程是TRUE 上线必须是FALSE
c.ALLOWED_HOSTS 如果是默认的那么只能本机能访问
改成['*']则可以让其他主机访问
d.INSTALLED_APPS 指定安装的应用,创建几个应用加几个
e.MIDDLEWARE:指定中间件
f.ROOT_URLCONF:
指定项目的基础路由配置文件
g.TEMPLATES 指定模板信息
h.DATABASES设定数据库信息
4 settings 加载流程
先加载global_settings文件(在虚拟环境/lib/python3.5、site-package)再加载项目中的settings文件,冲突以项目为主
- URL的使用
2.编写文件
from django.http import HttpResponse定义一个函数
def fun_views(request):
retun HttpResponse("wk welcome!!!")
3.在urls.py改写:
加上from .views import *
在urlpatterns加入 url(r'^fun/',fun_views),
url函数语法url(regex,views,kwargs=None,name=None)对应的参数分别是正则表达式,视图,字典向views传参,别名
- Django中的应用
应用就是网站中的独立模块
在项目的主目录中,是不处理具体请求。主目录中一般只做初始化设置 以及 请求地址的分发
2、创建应用
a. 命令
./manage.py startapp 应用名称
b. 在 settings.py 中注册应用
INSTALLED_APPS = [
...
'应用名称',
]
- Django 模板(Templates)
就是一个网页,可以被views响应给用户
目的是为了解决复杂的显示问题
2、模板的设置
在 settings.py 中的 TEMPLATES 变量
1、BACKEND :指定模板的搜索引擎,不用改动
2、DIRS :指定模板所存放的目录们
DIRS = ['index.temp','news.temp',]
但是,如果DIRS中为空的话,那么Django会自动搜索每个应用中的 templates 文件夹。默认会 将 templates 目录作为模板存放目录
推荐:
a、DIRS保持为空
b、在每个应用中,创建一个templates 目录,以后所有的 网页,都存放于此
c、APP_DIRS
True :先从DIRS中指定的文件夹中开始查找模板,如果没找到的话,再搜索 名为 templates 的文件夹
3、模板的加载方式
使用loader获取模板,通过HttpResponse进行响应
from django.template import loader
from django.shortcuts import render
eg1:def xxx_views(request):
t = loader.get_template('xxx.html')
html = t.render({})
return HttpResponse(html)
eg2:def login_views(request):
return render(request,'login.html')
三、创建项目流程
1.创建一个项目:django-admin startproject day(工程名)
2.在项目下创建一个应用index:
./manage.py startapp index(应用名称)
在settings.py里面注册应用
扫描二维码关注公众号,回复: 2742208 查看本文章INSTALLED_APPS = [
...
'应用名称',
]
3.在应用的views.py里面实现函数:
from django.shortcuts import render
# Create your views here.
def login_views(request):
return render(request,'login.html')
4.在index里面创建urls.py,在urls.py里面写路由的分配
from django.conf.urls import url
from .views import *
urlpatterns = [
url(r'^login/$',login_views,name = 'login'),
]
5.修改主目录下的urls.py
from django.conf.urls import url,include
from django.contrib import adminurlpatterns = [
url(r'^',include("index.urls")),
]
6.在index里面创建目录templates
在templates创建一系列模板(html文件),可以随便找一个网页用于测试
7.运行工程
在命令行输入: ./manage.py runserver 回车
打开浏览器:输入localhost:8000/login
四、数据库的使用:
- 数据库的创建
1.进入数据库:mysql -u root -p
2.创建一个名为webdb的数据库:create database webdb default char set utf8 collate utf8_general_ci;(分号表示结束),用show databases查看当前的数据库用use webdb(数据库名);使用数据库webdb用decs index_publisher(表名)查看表
- 在项目中使用数据库
1.在__init__.py中配置
import pymysql
pymysql.install_as_MySQLdb()
2.更改settings.py中的数据库配置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'webdb', 数据库名
'USER': 'root', 默认用户
'PASSWORD':'123456', 数据库的密码
'HOST':'localhost',
'PORT':'3306',
}3.创建model
在models.py创建一个model对应数据库的一张表class Author(models.Model):name = models.CharField(max_length=30)age = models.IntegerField()email = models.EmailField(max_length=50,null=True)编写完models.py文件之后执行以下命令(每次更改models.py都要执行一次)./manage.py makemigrations 将每个应用下的models映射成数据库的日志文件并存放在每个应用下的migrations 的文件夹中./manage.py migrate把每个应用管辖的migrations文件夹中的日志文件同步到数据库中
4.在urls.py中加入定义urlpatterns += [url(r'^01_author_add/$',author_add_views),]
5.在views.py中加入author_add_views函数和所用的包from django.http import HttpResponsefrom .models import *def author_add_views(request):# return render(request,'register.html')Author.objects.create(name = "wk",age = '22',email = '[email protected]')return HttpResponse("add ok!")
6.保存运行项目进入网站http://localhost:8000/01_author_add/然后在数据库中查看数据的信息,SQL语句:select * from index_author看数据是否添加成功