Django 一个小🌰

屏幕快照 2017-11-19 13.24.25.png

一:创建项目

在自己的pycharm中使用的是python3

  • 1 : creat project
  • 2: 选择Django的项目
  • 3: 在最下面Application name 填写自己项目的名称
  • 4:Location 工程的地址

在models写好相关代码,然后在setting文件中已经在创建好项目的时候把APP的INSTALLED_APPS名称加入到里面

二: 执行操作

  • 1 打开Pycharm下面的的Terminal 输入 python3 manage.py makemigrations
屏幕快照 2017-11-18 22.58.04.png
  • 2 更具上面生成的迁移对象,执行下面的命令来生成seq语句
    python3 manage.py migrate
屏幕快照 2017-11-19 10.12.21.png
  • 3 增加数据和删除数据可以在shell操作里进行

三 创建超级管理员

python3 manage.py createsuperuser

屏幕快照 2017-11-19 10.56.13.png

1 启动服务 默认是8000端口 如果被暂用 需要自己指定
python3 manage.py runserver

屏幕快照 2017-11-19 10.57.37.png

2 在浏览器中打开下面的地址,把你刚才的账户密码写进去登录
http://127.0.0.1:8000/admin

屏幕快照 2017-11-19 11.00.23.png

  • 3 这时候会看到上面的界面,都是英文的不好看 你可以修改setting文件来显示中文
    LANGUAGE_CODE = zh-hans'

还可以对时区进行修改


屏幕快照 2017-11-19 12.01.46.png
  • 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版本中,在界面添加数据的时候,如果添加的有中文的情况下会出错
屏幕快照 2017-11-19 11.22.56.png

7 原因是由于我们的代码在定义BookInfo中有对类属性的字符串输出,那个地方没有进行格式编码处理


屏幕快照 2017-11-19 11.24.52.png

如果你的没有出现报错,则上面的步骤不需要处理

四 自定义界面

1:在admin.py需要先注册自定义的类


image.png

五 关联对象

6E3C213F-D8F4-4951-9341-7B34219331A2.png

5.1 在book中添加对象的时候会看到下面多出3个英雄的界面


屏幕快照 2017-11-19 13.35.15.png

TabularInline是表格形式

屏幕快照 2017-11-19 13.37.24.png

屏幕快照 2017-11-19 13.36.57.png

六 view的简单制定

  • 1 : 在view中先注册pycharm提供的导入头文件,自己先用自定义的方式来创建


    548595BA-D2A5-4453-8756-663162D46097.png
  • 2 : 在booktest目录下创建自己的urls.py文件,定义自己app中的url


    6315BD76-2266-428B-98DE-B15AD1A969A4.png
  • 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,如果没有请加上


      1481AA49-DF9B-40C1-9C1F-A44D7ED6123F.png
    • 1.2 然后在templates文件下创建文件夹(booktest),在booktest下创建index.html模板


      368DBAD9-321A-4C58-A426-3D9F9A59B192.png
    • 1.3 如果没有按上面做会报错


      屏幕快照 2017-11-19 14.24.32.png
  • 2 :在view中导入自己定义的模板.


    3DCE20E1-A05C-4A3D-9905-C538DAA831F4.png
    • 2.1 不用上面的手动,用rendom函数,结果是一样的


      EA0FDDDE-816D-49A4-B40D-235813E36D2A.png
  • 3 把模型中的数据展示在view中

    3.1 在html中


    C51FA7ED-EB84-43C5-8434-C9799CAAD107.png

3.2 在views中


CD034F71-9780-4C73-81AB-0EE2E6DFCBA7.png

八 详细展示

  • 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>

九 最终效果

A2CF7C66-1679-4C04-900B-4D65DF505D94.png
EF985B97-126A-44F0-9E24-79261CCCA901.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • (一)、启动服务器 (二)、创建数据库表 或 更改数据库表或字段 Django 1.7.1及以上 用以下命令 1....
    夏天夏星阅读 11,020评论 0 17
  • 本书介绍 你是不是对Django的学习感到迷茫?是不是对网上零星的教程感到绝望?是不是苦于没有可以迅速上手的实例而...
    阡陌3536阅读 5,099评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,308评论 19 139
  • 羊皮卷上所记载的一切自永远至永远不会重复出现,因为注定经受百年孤独的家族不会有第二次机会在大地上出现。 一...
    LovingLiver阅读 2,325评论 0 0
  • 残月如镰风清婉 一川暮寞影怜乱 车水马龙人行色匆匆 沿路的风景暗自飘零 彼此经过 即错过 默默祝福那些 离我而去的...
    越寒阅读 2,224评论 6 11