失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python django项目创建步骤

python django项目创建步骤

时间:2022-03-02 11:21:09

相关推荐

python django项目创建步骤

Python下有许多款不同的 Web 框架,常见的有Django,Flask,Torand,。其中Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。Django采用了MVC的框架模式,即模型M,视图V和控制器C。

一、准备工作:django和数据库的安装

在创建django项目前,有一些准备工作。1、安装python3.7,并配置到环境变量。2、安装django,在命令行执行以下命令pip install django。3、安装数据库 pip install mysqlclient pip install Pillow

(注意 1、如果出现类似“。。。。。pip install --upgrade pip”的错误,按提示执行以下命令升级pip:pip install --upgrade pip

2、如果pip install mysqlclient出现错误就下载数据库,手动安装执行命令pip install mysqlclient-1.4.4-cp37-cp37m-win_amd64.whl)

二、创建django项目netBarManageSys

以创建一个网吧管理系统为例。

1、打开cmd命令行

2、定位到要创建项目的文件夹

3、执行命令django-admin startproject netBarManageSys

执行完以上三个命令后,可以看到在我们指定的目录位置创建了一个netBarManageSys文件夹

netBarManageSys文件夹下目录结构说明

netBarManageSys:项目的容器。manage.py:一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。netBarManageSys/__init__.py:一个空文件,告诉 Python 该目录是一个 Python 包。netBarManageSys/settings.py:该 Django 项目的设置/配置。netBarManageSys/urls.py:该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。netBarManageSys/wsgi.py:一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。

从命令行进入netBarManageSys路径,启动服务器python manage.py runserver

0.0.0.0 让其它电脑可连接到开发服务器,8000 为端口号。如果不说明,那么端口号默认为 8000。

在浏览器输入http://127.0.0.1:8000/,结果如下:

这是一个空的服务器什么内容都没有。我们要完善其View(及网页界面显示)、数据模型Model(即数据结构),以及一些功能逻辑跳转。

三、丰富项目内容

3.1模型 Model

3.1.1 数据库配置

创建数据库,注意编码格式,进入mysql命令行,执行以下create database netbar_manage_sys_db DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

在项目的 settings.py 文件中找到 DATABASES 配置项,将其信息修改为:

DATABASES={

'default':{

'ENGINE':'django.db.backends.sqlite3',

#'NAME':os.path.join(BASE_DIR,'db.sqlite3'),

'NAME':'netbar_manage_sys_db',

'HOST':'localhost',

'PORT':'3306',

'USER':'root',

'PASSWORD':'root123',

}

}

上面包含数据库名称和用户的信息,它们与 MySQL 中对应数据库和用户的设置相同。Django 根据这一设置,与 MySQL 中相应的数据库和用户连接起来。

3.1.2 定义数据模型

Django规定,如果要使用模型,必须要创建一个app。使用startapp命令创建一个名为netBarSys 的 app:

目录结构如下

在setting文件中配置我们自己创建的app,这一步很重要,不然后面同步数据库会有问题

INSTALLED_APPS=[

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

'netBarSys',#我们自己定义的app

]

打开mdels.py文件,添加我们需要的数据模型。

根据功能需要添加用户数据模型和用户信息数据模型

classUsers(models.Model):

usertype=models.IntegerField(default=0)#0-顾客,1-管理员

name=models.CharField(max_length=50)

password=models

classUserInfos(models.Model):

user=models.OneToOneField(Users,on_delete=models.CASCADE)

loginintime=models.DateTimeField('loginintime')#登录时间

lastLogouttime=models.DateTimeField('lastloginouttime')#上次登出时间

onlinetime=models.IntegerField(default=0)#在线时间单位分钟,当该值超过240,强制下线

state=models.IntegerField(default=0)#顾客状态0-offlinenormal,1-onlinenormal2forceoffline

fee=models.IntegerField(default=0)#费用

同步数据库,命令行中依次运行

python manage.py makemigrations

python manage.py sqlmigrate netBarSys 0001

python manage.py migrate

创建管理员账户

创建管理员账户,管理员是不能注册的。从命令行进入graduationDesignSys路径,依次执行以下命令

pythonmanage.pyshell

>>> from netBarSys.models import Users

>>> admin=Users(usertype=1,name='admin01',password='123456')

>>> admin.save()

3.2模板Templates和视图View

在django中,视图对WEB请求进行回应

视图接收reqeust对象作为第一个参数,包含了请求的信息

视图就是一个Python函数,被定义在views.py中

模板基本上就是一些输出动态值的经过特殊格式化的HTML文本,支持简单的逻辑结构如循环等。当一个视图要返回一个HTML文档时,它通常会指定一个模板,提供给它所要显示的信息,并在响应里使用模板渲染的结果。

在netBarSys目录下创建templates目录,这里面将存放我们的模板文件。定义base文件包含一些通用的显示设置项,其他html文件继承自它。关于html文件内容是另外的内容这里不详细赘述,只截取部分重要代码

登陆文件代码:

<!DOCTYPEhtml>

<htmllang="en">

<head>

<metacharset="UTF-8">

<title>主页</title>

<!--使用CSS样式来控制div布局-->

<styletype="text/css">

/*定义全局的div布局*/

#content{

width:100%;

height:800px;

margin:200pxauto;

}

html,body{text-align:center}

input,select{height:30px;width:200px;vertical-align:left;}

</style>

</head>

<body>

<divid=content>

<h2>AA网吧管理系统</h2>

<div>

{%formessageinmessages%}

<divclass='alertalert-{{message.tags}}'style="color:coral">{{message}}</div>

{%endfor%}

</div>

<formaction="{%url'index'%}"method="post"name='login'>{%csrf_token%}

<tablealign="center">

<tr>

<td>账户:</td>

<td><inputtype="text"id="id_username"name="username"placeholder="用户名"autofocusrequired/></td>

</tr>

<tr>

<td>密码:</td>

<td><inputtype="password"id="id_password"placeholder="密码"name="password"required/></td>

</tr>

<tr>

<td></td>

<td>

<inputtype="submit"value="登录">

</td>

</tr>

</table>

</form>

</div>

</body>

</html>

创建视图函数实现登陆功能

在netBarSys/views.py中

defindex(request):

ifrequest.method=='POST':

name=request.POST['username']

password=request.POST['password']

#查询用户是否在数据库中

print("%s,%s,%d"%(name,password))

ifUsers.objects.filter(name=name).exists():

user=Users.objects.get(name=name)

print("%s,%s,%d"%(user.name,user.password,user.usertype))

print(user.password+",%d"%user.usertype)

ifuser.password==password:

request.session['is_login']='true'

request.session['username']='username',

ifuser.usertype==1:

response=render(request,'homepage_a.html')#跳到管理员首页界面

else:

response=render(request,'homepage.html')#跳到顾客首页界面

#setcookie

response.set_cookie('username',user.name)

returnresponse

else:

messages.add_message(request,messages.ERROR,'用户密码或身份类型错误')

returnrender(request,'index.html')

else:

messages.add_message(request,messages.ERROR,'用户不存在')

returnrender(request,'index.html')

returnrender(request,'index.html')

将新视图添加进lib.urls模块里

urlpatterns=[

path('admin/',admin.site.urls),

path('index/',views.index,name='index'),

]

显示样式:

输入刚才创建的管理员的账户和密码登陆后如下图:

其他功能用同样的方法(1、创建模板(写html文件),2、实现view函数,3、将新视图添加进lib.urls模块里。)来实现

参考文档Django 创建第一个项目 | 菜鸟教程

Django 基础入门_Python - 蓝桥云课

Django中,模型(models),视图(views)和模板的区别和应用_codeksy的博客-CSDN博客

/article/165607.htm

如果觉得《python django项目创建步骤》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。