django的流程和命令行工具
django的流程和命令行工具 django实现流程 django ????#安装:?pip3?install?django ??????????添加环境变量 ????#1??创建project ???????django-admin?startproject?mysite ???????---mysite ??????????---settings.py ??????????---url.py ??????????---wsgi.py ???????----?manage.py(启动文件)?? ????#2??创建APP??????? ???????python?mannage.py?startapp??app01 ????#3??settings配置 ???? ???????TEMPLATES ???????STATICFILES_DIRS=( ????????????os.path.join(BASE_DIR,"statics"),????????) ???????STATIC_URL?=?'/static/'? ???????#??我们只能用?STATIC_URL,但STATIC_URL会按着你的STATICFILES_DIRS去找#4??根据需求设计代码 ???????????url.py ???????????view.py ????#5??使用模版 ???????render(req,"index.html")??? ????#6??启动项目 ???????python?manage.py?runserver??127.0.0.1:8090 ????#7??连接数据库,操作数据 ???????model.py django的命令行工具 django-admin.py 是Django的一个用于管理任务的命令行工具,manage.py是对django-admin.py的简单包装,每一个Django Project里都会有一个mannage.py。 <1> 创建一个django工程 : django-admin.py startproject mysite ? ? ? ? 当前目录下会生成mysite的工程,目录结构如下:
<2>在mysite目录下创建blog应用: python manage.py startapp blog <3>启动django项目:python manage.py runserver 8080 ? ? ? ?这样我们的django就启动起来了!当我们访问:http://127.0.0.1:8080/时就可以看到: ? ? <4>生成同步数据库的脚本:python manage.py makemigrations ? ? ? ? ? ? ? ? ? ? ? ?同步数据库: ?python manage.py migrate ?? 注意:在开发过程中,数据库同步误操作之后,难免会遇到后面不能同步成功的情况,解决这个问题的一个简单粗暴方法是把migrations目录下的脚本(除__init__.py之外)全部删掉,再把数据库删掉之后创建一个新的数据库,数据库同步操作再重新做一遍。 ? ? <5>当我们访问http://127.0.0.1:8080/admin/时,会出现: 所以我们需要为进入这个项目的后台创建超级管理员:python manage.py createsuperuser,设置好用户名和密码后便可登录啦! <6>清空数据库:python manage.py ?flush <7>查询某个命令的详细信息: django-admin.py ?help ?startapp ? ? ? ?admin 是Django 自带的一个后台数据库管理系统。 <8>启动交互界面 :python manage.py ?shell 这个命令和直接运行 python 进入 shell 的区别是:你可以在这个 shell 里面调用当前项目的 models.py 中的 API,对于操作数据,还有一些小测试非常方便。 <9> 终端上输入python manage.py 可以看到详细的列表,在忘记子名称的时候特别有用。 实例练习1-提交数据并展示 <!DOCTYPE?html> <html> <head> ????<meta?charset="UTF-8"> ????<title>Title</title> </head> <body> <h1>创建个人信息</h1> <form?action="/userInfor/"?method="post"> ????<p>姓名<input?type="text"?name="username"></p> ????<p>性别<input?type="text"?name="sex"></p> ????<p>邮箱<input?type="text"?name="email"></p> ????<p><input?type="submit"?value="submit"></p> </form> <hr> <h1>信息展示</h1> <table?border="1"> ????<tr> ????????<td>姓名</td> ????????<td>性别</td> ????????<td>邮箱</td> ????</tr> ????{%?for?i?in?info_list?%} ????????<tr> ????????????<td>{{?i.username?}}</td> ????????????<td>{{?i.sex?}}</td> ????????????<td>{{?i.email?}}</td> ????????</tr> ????{%?endfor?%} </table> </body> </html> -----------------------url.py--------------------------------------- url(r'^userInfor/',?views.userInfor) -----------------------views.py-------------------------------------- info_list=[] def?userInfor(req): ????if?req.method=="POST": ????????username=req.POST.get("username",None) ????????sex=req.POST.get("sex",None) ????????email=req.POST.get("email",None) ????????info={"username":username,"sex":sex,"email":email} ????????info_list.append(info) ????return?render(req,"userInfor.html",{"info_list":info_list}) 实例练习2-提交数据并展示(数据库) <!DOCTYPE?html> <html> <head> ????<meta?charset="UTF-8"> ????<title>Title</title> </head> <body> <h1>创建个人信息</h1> <form?action="/userInfor/"?method="post"> ????<p>姓名<input?type="text"?name="username"></p> ????<p>性别<input?type="text"?name="sex"></p> ????<p>邮箱<input?type="text"?name="email"></p> ????<p><input?type="submit"?value="submit"></p> </form> <hr> <h1>信息展示</h1> <table?border="1"> ????<tr> ????????<td>姓名</td> ????????<td>性别</td> ????????<td>邮箱</td> ????</tr> ????{%?for?i?in?info_list?%} ????????<tr> ????????????<td>{{?i.username?}}</td> ????????????<td>{{?i.sex?}}</td> ????????????<td>{{?i.email?}}</td> ????????</tr> ????{%?endfor?%} </table> </body> </html> ----------------------------------------------models.py from?django.db?import?models #?Create?your?models?here. class?UserInfor(models.Model): ????username=models.CharField(max_length=64) ????sex=models.CharField(max_length=64) ????email=models.CharField(max_length=64) ----------------------------------------------views.py from?django.shortcuts?import?render from?app01?import?models #?Create?your?views?here. def?userInfor(req): ????if?req.method=="POST": ????????u=req.POST.get("username",None) ????????s=req.POST.get("sex",None) ????????e=req.POST.get("email",None) ???????#---------表中插入数据方式一 ????????????#?info={"username":u,"sex":e,"email":e} ????????????#?models.UserInfor.objects.create(**info) ???????#---------表中插入数据方式二 ????????models.UserInfor.objects.create( ????????????username=u,????????????sex=s,????????????email=e ????????) ????????info_list=models.UserInfor.objects.all() ????????return?render(req,{"info_list":info_list}) ????return?render(req,"userInfor.html") (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |