创建项目
命令django-admin startproject djangotest
进入test1目录,tree
manage.py:一个命令行工具,可以使你用多种方式对Django项目进行交互
内层的目录test1:项目的真正的Python包
_init _.py:一个空文件,它告诉Python这个目录应该被看做一个Python包
settings.py:项目的配置
urls.py:项目的URL声明
wsgi.py:项目与WSGI兼容的Web服务器入口
创建app
在一个项目中可以创建一到多个应用,每个应用进行一种业务处理
创建应用的命令:
python manage.py startapp user
定义模型类
打开models.py文件,定义模型类
引入包from django.db import models
模型类继承自models.Model类
不需要定义主键列,在生成时会自动添加,并且值为自动增长
当输出对象时,会调用对象的str方法
生成数据表
1 . 激活模型:编辑settings.py文件,将booktest应用加入到installed_apps中
2. 生成迁移文件:根据模型类生成sql语句,迁移文件被生成到应用的migrations目录
python manage.py makemigrations
3. 执行迁移:执行sql语句生成数据表
python manage.py migrate
数据库配置
1. 在虚拟环境中安装mysql包
2. 在mysql中创建数据库
3. 打开settings.py文件,修改DATABASES项
*****************1、在虚拟环境中安装mysql包*****************
pip install PyMySQL
MySQLdb 只适用于python2.x,发现python3上的pip装不上。它在py3的替代品是:pip install PyMySQL
而django默认的还是使用MySQLdb:执行会报:ImportError: No module named 'MySQLdb'
解决:
在站点的 __init__.py 文件中添加
import pymysql
pymysql.install_as_MySQLdb()
*****************2、在mysql中创建数据库表*****************
create database test2 charset=utf8
*****************3、修改DATABASES项*****************
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'test2',
'USER': '用户名',
'PASSWORD': '密码',
'HOST': '数据库服务器ip,本地可以使用localhost',
'PORT': '端口,默认为3306',
}
}
测试数据
1. 激活进入python shell,进行简单的模型API练习
python manage.py shell
2. 引入需要的包:
from booktest.models import *
from datetime import *
3. 单个对象的增删改查
4. 关联对象的操作
引入需要的包:
from booktest.models import *
from datetime import *
**************单个对象的操作**************
1、查询所有图书信息:
BookInfo.objects.all()
2、新建图书信息:
b = BookInfo()
b.btitle="射雕英雄传"
b.bpub_date=datetime(year=1990,month=1,day=10)
b.save()
3、查找图书信息:
b=BookInfo.objects.get(pk=1)
输出图书信息:
b
b.id
b.btitle
4、修改图书信息:
b.btitle="天龙八部"
b.save()
5、删除图书信息:
b.delete()
**************关联对象的操作**************
1、对于HeroInfo可以按照下面的操作方式进行
添加,注意添加关联对象
h=HeroInfo()
h.htitle=u'郭靖'
h.hgender=True
h.hcontent='降龙十八掌'
h.hbook=b
h.save()
2、获得关联集合:返回当前book对象的所有hero
b=BookInfo.objects.get(pk=1)
b.heroinfo_set.all()
管理站点
运行如下命令可以开启服务器
python manage.py runserver ip:port
使用django的管理
创建一个管理员用户
python manage.py createsuperuser,按提示输入用户名、邮箱、密码
启动服务器,通过“ip:port/admin”访问,输入上面创建的用户名、密码完成登录
向admin注册user的模型
打开user/admin.py文件,注册模型
from django.contrib import admin
from .models import user
admin.site.register(user)
Urlconf
******************插入booktest的urls******************
在test1/urls.py插入booktest,使主urlconf连接到booktest.urls模块
url(r'^', include('booktest.urls’)),
******************添加urlconf******************
在booktest中的urls.py中添加urlconf
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index),
url(r'^([0-9]+)/$', views.detail),
]
views模块
*****************render简写*****************
from django.shortcuts import render
from .models import User
def index(reqeust):
return render(reqeust, 'login.html', {'booklist': booklist})
templates模版
修改settings.py文件,设置TEMPLATES的DIRS值
'DIRS': [os.path.join(BASE_DIR, 'templates')],