如何使用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,或者直接将变量定义在函数里

最新文章

  1. App开放接口api安全性的设计与实现
  2. linux 内核 RCU机制详解
  3. TP中验证码的实现
  4. 关于yaf 框架的win安装
  5. Android dispatchTouchEvent介绍
  6. sql 相关子查询
  7. Android开发教程AnimationDrawable逐帧播放动画
  8. 231. Power of Two
  9. HeadFirst设计模式之状态模式
  10. VC 项目支撑文件解释
  11. Swift3.0服务端开发(四) MySQL数据库的连接与操作
  12. python 字典不区分大小写工具类
  13. [转] JavaScript 运行机制详解:再谈Event Loop
  14. Python super() 函数
  15. C# 源码 AForge.NET
  16. SpringMVC接受JSON参数详解及常见错误总结
  17. VIM中一些按键的作用:
  18. 170821、本地代码上传gitlub
  19. Omeed 线段树
  20. ASP.NET Web API Claims Authorization with ASP.NET Identity 2.1 Part 5 (by TAISEER)

热门文章

  1. IConvertible接口
  2. Layui 必填验证
  3. cf1199解题报告
  4. 【luoguP1533】可怜的狗狗
  5. mysql数据库去掉字符前/中/后的空格
  6. display:none和visibility:hidden
  7. 使用kubernetes管理包的常用命令
  8. [Gamma]Scrum Meeting#5
  9. 【p6spy学习之一】p6spy使用
  10. .net core 中的多环境配置