如何使用Python的Django框架创建自己的网站
如何使用Python的Django框架创建自己的网站
Django建站主要分四步:1、创建Django项目,2、将网页模板移植到Django项目中,3、数据交互,4、数据库
1创建Django项目
本人使用的是pycharm编辑器,打开pycharm,如下图点击左下角红框位置,选择terminal,然后在terminal窗口输入
django-admin.py startproject myproject
然后再输入
python manage.py startapp myapp
上面的myproject和myapp都是自己定义的工程名和APP名
至此,Django项目已经建立完毕。
2将网页模板移植到Django项目中
1、在myapp文件下新建两个文件夹,static和templates,static文件夹放置网页模板的css、js以及其他文件夹,templates文件夹只放.html的文件
2、对Django项目的四个文件进行修改,因为将模板移植到Django项目中,需要在模板文件中进行一些格式修改。
setting.py
在里面添加自己的APP,添加模板的文件夹路径
'DIRS': [os.path.join(BASE_DIR,'templates')],
url.py
新加以下语句
from django.urls import path
from django.conf import settings
from django.conf.urls.static import static
from myapp import views
然后再添加网页的路径
path('login', views.login),

views.py
定义一个响应函数,函数名必须和网页的xx.html前缀名相同
def index(request):
return render(request, 'index.html',
xx.html
在下添加下面语句,表示下面的模板由Django接管
{% load static %}
以下为Django下的一些语句格式例子
{% for line in data1 %}
{% if line.user == data2.user %}
{% if line.psw == data2.psw %}
{% endif %}
{% endif %}
{% endfor %}
可以看出在路径和for循环if判断语句中都要用{% %}。
3数据交互
views.py
首先定义一个list,如user_list[ ],用于存放数据
数据的方法为POST,所以在响应函数中加一个判断语句
def login(request):
if request.method == "POST":
username = request.POST.get("username", None)//将用户输入的数据存到变量中
password = request.POST.get("password", None)
user_list = {"user": username, "psw": password}
return render(request, 'login.html', {"data1": user_list})//将数据送回到页面
xx.html无锡看妇科医院哪家好 http://mobile.wxbhnkyy39.com/
数据返回到页面后,通过for循环读取
{% for line in data1 %}
line.user = data1.user
line.psw = data1.psw
{% endfor %}
4数据库的操作
需要更改三个文件
setting.py
Django有自己自带的数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), #Django自带的数据库
}
}
models.py
先创建models
class UserInfo(models.Model):
user = models.CharField(max_length=32)
psw = models.CharField(max_length=32)
只要动了models.py,就要在terminal中输入以下两个语句
python manage.py makemigrations
python manage.py migrate
views.py
新加下面语句
from myapp import models
给数据库写入数据
models.UserInfo.objects.create(user="zhoupeng", psw="123456")
读取数据库数据
user_list = models.UserInfo.objects.all()
可以直接在网页中读数据库进行操作
在admin.py文件中加入以下语句
from myapp.models import UserInfo
admin.site.register(UserInfo)
然后创建超级用户
在terminal中输入
python manage.py createsuperuser
即可在http:/ /admin中对数据库进行操作
至此,一个完整的Django项目就完成了。
调式过程的心得
1、调试过程出现任何bug首先看一下自己是不是有那里拼写错误
2、有的时候调试很久,什么都没有错,但网页就是刷新不出来,但是过一段时间却自动好了,有可能是端口的问题,换个端口试一下
3、中的login为点击submit时要跳转的页面,写错会出现page not found,对于method,有数据是为post,无数据是为get
4、在url.py中 path(’’, views.login)和path(‘index’, views.index)的区别,前者的url为http:/…/后者为http:/…/index
5、出现错误为“Local variable xxx referenced before assignment”,就是局部变量和全局变量的问题,在响应函数中加global xxx,或者直接将变量定义在函数里
如何使用Python的Django框架创建自己的网站的更多相关文章
- Python的Django框架中的Context使用
Python的Django框架中的Context使用 近期整理些Python方面的知识,一旦你创建一个 Template 对象,你能够用 context 来传递数据给它. 一个context是一系列变 ...
- 将Python的Django框架与认证系统整合的方法
将Python的Django框架与认证系统整合的方法 这篇文章主要介绍了将Python的Django框架与认证系统整合的方法,包括指定认证后台和编写认证后台等内容,需要的朋友可以参考下 将Django ...
- Python的Django框架中forms表单类的使用方法详解
用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML ...
- Python的Django框架中的Cookie相关处理
Python的Django框架中的Cookie相关处理 浏览器的开发人员在非常早的时候就已经意识到. HTTP's 的无状态会对Web开发人员带来非常大的问题,于是(cookies)应运而生. coo ...
- Python的Django框架中的URL配置与松耦合
Python的Django框架中的URL配置与松耦合 用 python 处理一个文本时,想要删除其中中某一行,常规的思路是先把文件读入内存,在内存中修改后再写入源文件. 但如果要处理一个很大的文本,比 ...
- Python之Django框架
1.Django简介 Python下有多款不同的 Web 框架,Django是最有代表性的一种.许多成功的网站和APP都基于Django. Django是一个开源的Web应用框架,由Python写成. ...
- Django框架学习——python模拟Django框架(转载)
原贴来源 http://wiki.woodpecker.org.cn/moin/ObpLovelyPython/AbtWebModules python实现web服务器 web开发首先要有web服务器 ...
- python 之 Django框架(Django框架简介、视图装饰器、request对象、Response对象)
12.33 Django框架简介: MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器( ...
- python 之 Django框架(服务器程序和应用程序、基础必备三件套及相关配置)
第十二章 Django框架 12.1 服务器程序和应用程序 服务器程序负责对socket服务器进行封装,并在请求到来时,对请求的各种数据进行整理.应用程序则负责具体的逻辑处理.为了方便应用程序的开发, ...
随机推荐
- MyBatis源码 核心配置解析 properties元素
XMLConfigBuilder的parseConfiguration(XNode)方法,用于解析配置文件 XMLConfigBuilder的propertiesElement(XNode)方法,用于 ...
- python基础之函数重点
函数的返回值 现在有一个需求,比较两个人的月薪,然后想获取月薪较大人的年薪. 如果需要在程序中拿到函数的处理结果做进一步的处理,则需要函数必须要有返回值. 需要注意的是: return是一个函数结束的 ...
- mybatis框架,使用foreach实现复杂结果的查询--循环集合数组
需求:假定现在查询出用户角色是2和3指定的用户列表信息,并进行展示 接口: /** * 需求:传入指定的用户角色,用户角色有1-n,获取这些用户角色下的用户列表信息 * @param roleids ...
- Pandas | 02 Series 系列
系列(Series)是能够保存任何类型的数据(整数,字符串,浮点数,Python对象等)的一维标记数组.轴标签统称为索引. pandas.Series Pandas系列可以使用以下构造函数创建 - p ...
- C#中的Queue集合
Queue<T>集合 特点:先进先出,简单来说,就是新添加的元素是顺序添加在集合尾部,但是,移除的时候是从顶部开始移除元素. 三个方法: Enqueue(T obj);//顺序添加一个值到 ...
- 讲课专用——线段树——BSS
题目链接:http://codevs.cn/problem/3981/ 题解: 线段树求GSS模板题 一.一段长的区间的 GSS 有三种情况:>1 完全在左子区间>2 完全在右子区间> ...
- keepalived 配置文件解析
! Configuration File for keepalived global_defs { #全局定义部分 notification_email { #设置报警邮件地址,可设置多个 acass ...
- 51Nod1353 树
51Nod1353 树 传送门 思路 我们定义\(dp[i][j]\)代表第i个点联通块大小为j的方案总数,也可以把它理解为等待分配(不确定归属)的联通块大小为j的方案总数. 那么每次转移我们就使用一 ...
- Mysql系列(二)—— Mysql支持的数据类型
Mysql版本众多,每个版本支持的数据类型繁多且不一样,本篇文章中主要基于MySQL Community Server 5.7.22介绍常用的数据类型,包括其特点以及区别. 一.数据类型 正确的定义表 ...
- 史上最全HashMap红黑树解析
HashMap红黑树解析 红黑树介绍 TreeNode结构 树化的过程 红黑树的左旋和右旋 TreeNode的左旋和右旋 红黑树的插入 TreeNode的插入 红黑树的删除 TreeNode的删除节点 ...