一:创建项目
在自己的pycharm中使用的是python3
- 1 : creat project
- 2: 选择Django的项目
- 3: 在最下面Application name 填写自己项目的名称
- 4:Location 工程的地址
在models写好相关代码,然后在setting文件中已经在创建好项目的时候把APP的INSTALLED_APPS名称加入到里面
二: 执行操作
- 1 打开Pycharm下面的的Terminal 输入
python3 manage.py makemigrations
- 2 更具上面生成的迁移对象,执行下面的命令来生成seq语句
python3 manage.py migrate
- 3 增加数据和删除数据可以在shell操作里进行
三 创建超级管理员
python3 manage.py createsuperuser
1 启动服务 默认是8000端口 如果被暂用 需要自己指定
python3 manage.py runserver
2 在浏览器中打开下面的地址,把你刚才的账户密码写进去登录
http://127.0.0.1:8000/admin
- 3 这时候会看到上面的界面,都是英文的不好看 你可以修改setting文件来显示中文
LANGUAGE_CODE = zh-hans'
还可以对时区进行修改
- 5 如果想让创建的BookInfo添加到页面中,需要在admin.py中进行注册
- 5.1 python2中
from django.contrib import admin
from models import *
from.site.register(BookInfo)
- 5.2 python3中
from django.contrib import admin
from .models import *
from.site.register(BookInfo)
6 在有的Django版本中,在界面添加数据的时候,如果添加的有中文的情况下会出错
7 原因是由于我们的代码在定义BookInfo中有对类属性的字符串输出,那个地方没有进行格式编码处理
如果你的没有出现报错,则上面的步骤不需要处理
四 自定义界面
1:在admin.py需要先注册自定义的类
五 关联对象
5.1 在book中添加对象的时候会看到下面多出3个英雄的界面
TabularInline
是表格形式
六 view的简单制定
-
1 : 在view中先注册pycharm提供的导入头文件,自己先用自定义的方式来创建
-
2 : 在booktest目录下创建自己的urls.py文件,定义自己app中的url
3 : 在项目中的urls.py中配置自己刚才app中定义的urls
from django.conf.urls import url, include
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^', include('booktest.urls'))
]
七 定义模板
- 1 : 如果你是没有直接用pycharm创建的项目,而是用的命令创建的项目,则项目目录中没有templates文件夹目录,则需要在pycharm手动创建
-
1.1 注意 手动创建此目录,系统不会在setting文件中去注册,rutemplates,如果没有请加上
-
1.2 然后在templates文件下创建文件夹(booktest),在booktest下创建index.html模板
-
1.3 如果没有按上面做会报错
-
-
2 :在view中导入自己定义的模板.
-
2.1 不用上面的手动,用rendom函数,结果是一样的
-
-
3 把模型中的数据展示在view中
3.1 在html中
3.2 在views中
八 详细展示
- 1 : views.py中定义要展示的方法
def show(request, id):
# 根据id获取一本书
bookinfo = BookInfo.objects.get(pk=id)
# 从书对象中获取对应所有的英雄
herolist = bookinfo.heroinfo_set.all()
context = {"list": herolist}
return render(request, 'booktest/show.html', context)
- 2 在urls中定义要要show方法的规则
from django.conf.urls import url
from . import views
urlpatterns=[
url(r'^$', views.index),
url(r'(\d+)', views.show) #匹配到数据将调用views中的show方法
]
- 3 : 创建自己的show模板html(一定要注意格式,否则会报错)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<url>
{%for hero in list%}
<li>{{hero.hname}}</li>
{% endfor %}
</url>
</body>
</html>