如何使用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項目中,需要在模板文件中進行一些格式修改。

  1. setting.py
    在裏面添加自己的APP,添加模板的文件夾路徑
'DIRS': [os.path.join(BASE_DIR,'templates')],

在這裏插入圖片描述
在這裏插入圖片描述

  1. 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),

在這裏插入圖片描述

  1. views.py
    定義一個響應函數,函數名必須和網頁的xx.html前綴名相同
def index(request):
    return render(request, 'index.html', 
  1. xx.html
    在下添加下面語句,表示下面的模板由Django接管
{% load static %}

以下爲Django下的一些語句格式例子

<script src="{% static "js\highcharts.js" %}"></script>
{% for line in data1 %}
      {% if line.user == data2.user %}
            {% if line.psw == data2.psw %}
               <Meta http-equiv="refresh" content="1;url=index">
            {% endif %}
        {% endif %}
{% endfor %}

可以看出在路徑和for循環if判斷語句中都要用{% %}。

3數據交互

  1. 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})//將數據送回到頁面
  1. xx.html
    數據返回到頁面後,通過for循環讀取
{% for line in data1 %}
   line.user = data1.user
   line.psw = data1.psw
{% endfor %}

4數據庫的操作

需要更改三個文件

  1. setting.py
    Django有自己自帶的數據庫
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), #Django自帶的數據庫
    }
}
  1. 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
  1. 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,或者直接將變量定義在函數裏

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章