加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

django的流程和命令行工具

发布时间:2020-12-15 17:14:04 所属栏目:大数据 来源:网络整理
导读:django的流程和命令行工具 django实现流程 django????#安装:?pip3?install?django??????????添加环境变量????#1??创建project???????django-admin?startproject?mysite???????---mysite??????????---settings.py??????????---url.py??????????---wsgi.py???

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的工程,目录结构如下:

  • manage.py ----- Django项目里面的工具,通过它可以调用django shell和数据库等。

  • settings.py ---- 包含了项目的默认设置,包括数据库信息,调试标志以及其他一些工作的变量。

  • urls.py ----- 负责把URL模式映射到应用程序。

<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")


(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读