天天看點

python+django搭建web項目

需要的環境......(略)

使用pycharm社群版搭建項目(專業版有更強大功能):

  1. 打開terminal 執行指令: django-admin startproject first_project  如下圖:
python+django搭建web項目

在Django_server目錄下會建立一個first_project項目;

  1. 連接配接mysql資料庫:

如果未安裝mysqlclient驅動程式,需要執行指令:pip3 install mysqlclient;如遇報錯(紅一片的那種),需要先在https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient下載下傳對應python版本的mysqlclient(我的是3.5版本)

python+django搭建web項目
  • 下載下傳完成後,在該檔案所在目錄打開指令行執行視窗,執行指令:
  • pip3 install mysqlclient‑1.4.4‑cp35‑cp35m‑win_amd64.whl  (根據版本而定)

成功以後對,配置資料庫連接配接,打開settings.py檔案編寫代碼:

DATABASES = {

    'default': {

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

        'NAME': '資料庫名稱',

        'USER': '資料庫使用者名',

        'PASSWORD': '密碼',

        'HOST': 'localhost',

        'PORT': '3306',

    }

}

執行指令:python manage.py shell   如圖:

python+django搭建web項目

測試資料庫配置是否成功:

>>> from django.db import connection

>>> cursor = connection.cursor()

如果沒有報錯,則配置成功。

  1. 建立app

首先切換到項目路徑下:cd  first_project

執行指令:python  manage.py  startapp  student

會在項目下建立一個student目錄。

  1. 建立模闆檔案的目錄:

在項目根目錄下建立一個templates目錄

python+django搭建web項目
  1. 啟動:python manage.py runserver   (預設端口号8000)
python+django搭建web項目

啟動成功!

在浏覽器通路:127.0.0.1:8000 顯示:

python+django搭建web項目
  1. 添加web工程頁面

打開first_project/views.py輸入:

from django.http import HttpResponse

import datetime





def hello(request):

    date = datetime.datetime.now()  # 擷取目前時間

    html = '<h2>Hello World!現在時間是:{}</h2>'.format(date)

    return HttpResponse(html)
           
  1. url映射配置:

打開first_project/urls.py輸入:

from django.conf.urls import url

from django.contrib import admin

from first_project import views



urlpatterns = [

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

    url(r'^hello/$', views.hello),

]
           

在浏覽器通路:127.0.0.1:8000/hello

python+django搭建web項目

成功!

  1. 邏輯和頁面分離

在建立的templates目錄下建立一個student.html檔案編寫如下代碼:

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>hello</title>

</head>

<body>

<ul>

    {% for student in students %}

    <li>

        id:{{student.id}},姓名:{{student.name}},age:{{student.age}}

    </li>

    {% endfor %}

</ul>

</body>

</html>

在Student/views.py 檔案下編輯代碼:

from django.shortcuts import render, render_to_response

# Create your views here.

def showStudents(request):

    list = [{'id': 1, 'name': 'Jack'}, {'id': 2, 'name': 'Rose'}]

    return render_to_response('student.html', {'students': list})

添加url映射:

from django.conf.urls import url

from django.contrib import admin

from first_project import views

from student import views as student_views

urlpatterns = [

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

    url(r'^hello/$', views.hello),

    url(r'^showStudents/$', student_views.showStudents),

]

修改firstproject目錄下的setting.py配置檔案:

TEMPLATES = [

    {

        'BACKEND': 'django.template.backends.django.DjangoTemplates',

        'DIRS': [BASE_DIR + "/templates", ],

        'APP_DIRS': True,

        'OPTIONS': {

            'context_processors': [

                'django.template.context_processors.debug',

                'django.template.context_processors.request',

                'django.contrib.auth.context_processors.auth',

                'django.contrib.messages.context_processors.messages',

            ],

        },

    },

]

此時,通路127.0.0.1:8000/showStudents顯示出如下資訊:

python+django搭建web項目
  1. 建立模型

打開student目錄下的models.py編寫代碼:

from django.db import models

# Create your models here.

class Student(models.Model):

    name = models.CharField(max_length=20)

激活模型:

打開setting.py找到 INSTALLED_APPS 設定:

INSTALLED_APPS = [

    'django.contrib.admin',

    'django.contrib.auth',

    'django.contrib.contenttypes',

    'django.contrib.sessions',

    'django.contrib.messages',

    'django.contrib.staticfiles',

    'student',

]

将建立的models同步到資料庫:(請使用mysql6以上版本)

在項目目錄下執行指令:

python manage.py  makemigrations

python manage.py  migrate

python+django搭建web項目

資料庫中建立如上表;

附錄:

字段

1、models.AutoField  自增列= int(11)

  如果沒有的話,預設會生成一個名稱為 id 的列,如果要顯示的自定義一個自增列,必須将給列設定為主鍵 primary_key=True。

2、models.CharField  字元串字段

  必須 max_length 參數

3.models.DateField  日期類型 date

  對于參數,auto_now =True則每次更新都會更新這個時間;auto_now_add 則隻是第一次建立添加,之後的更新不再改變。

4.models.DateTimeField  日期類型 datetime

  同DateField的參數

5.models.EmailField  字元串類型(正規表達式郵箱)=varchar

  對字元串進行正規表達式

6.models.FloatField  浮點類型= double

7.models.IntegerField  整形

8.models.SmallIntegerField  數字

  資料庫中的字段有:tinyint、smallint、int、bigint

9、models.TextField  字元串=longtext

10、models.TimeField  時間 HH:MM[:ss[.uuuuuu]]

11、models.URLField  字元串,位址正規表達式

12、models.BinaryField  二進制

13、models.ImageField圖檔

14、models.FilePathField檔案

參數

1、null=True

  資料庫中字段是否可以為空

2、blank=True

  django的Admin中添加資料時是否可允許空值

3、primary_key =False

  主鍵,對AutoField設定主鍵後,就會代替原來的自增 id 列

4、auto_now 和 auto_now_add

  auto_now 自動建立---無論添加或修改,都是目前操作的時間

  auto_now_add 自動建立---永遠是建立時的時間

5、choices

GENDER_CHOICE =(

(u'M', u'Male'),

(u'F', u'Female'),

)

gender = models.CharField(max_length=2,choices = GENDER_CHOICE)

6、max_length

7、default  預設值

8、verbose_name  Admin中字段的顯示名稱

9、name|db_column  資料庫中的字段名稱

10、unique=True  不允許重複

11、db_index =True  資料庫索引

12、editable=True  在Admin裡是否可編輯

關注公衆号:“一起玩轉Python”擷取源碼:

掃碼關注

python+django搭建web項目