1. 程式人生 > 資料庫 >python+Django+pycharm+mysql 搭建首個web專案詳解

python+Django+pycharm+mysql 搭建首個web專案詳解

本文例項講述了python+Django+pycharm+mysql 搭建首個web專案。分享給大家供大家參考,具體如下:

前面的文章記錄了環境搭建的過程,本節記錄首個web專案除錯

首先檢查安裝的模組,輸入dos命令 pip list,會顯示已安裝的模組,看是否有Django,PyMySQL模組

C:\Users\Administrator\PycharmProjects>pip list
DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to di
sable this warning.
Django (2.0.1)
pip (9.0.1)
PyMySQL (0.8.0)
pytz (2017.3)
setuptools (28.8.0)

1、然後開始建立專案: 執行PyCharm,選單選File->New project 彈出對話方塊

在對話方塊中左側選Django,專案名稱修改為mysite,點Create按鈕建立

然後點選執行,即可看到web專案啟動,並提示Starting development server at http://127.0.0.1:8000/

點選連結即可在瀏覽器看到預設網頁,建立成功

2. 建立APP

在每個django專案中可以包含多個APP,相當於一個大型專案中的分系統、子模組、功能部件等等,相互之間比較獨立,但也有聯絡。所有的APP共享專案資源。

在pycharm下方的terminal終端中輸入命令:

python manage.py startapp cmdb

這樣就建立了一個叫做cmdb的APP,django自動生成“cmdb”資料夾。

3. 修改mysite\urls.py檔案,修改後以下:

from django.urls import path
from cmdb import views
from django.conf.urls import url
urlpatterns = [
#  path('admin/',admin.site.urls),url(r'^index/',views.index)
]

4.修改cmdb\views.py檔案

from django.shortcuts import render
from django.shortcuts import HttpResponse
import pymysql
# Create your views here.
# 開啟資料庫連線
db = pymysql.connect(host="192.168.1.100",user="root",password="abc123",db="testdb",port=3306)
# 使用cursor()方法獲取操作遊標
cur = db.cursor()
def index(request):
  start = 10
  limit = 10
  if request.method == "POST":
    start = request.POST.get("start",None)
    limit = request.POST.get("limit",None)
  sql = "SELECT * FROM `siterecord` WHERE 1 limit %s,%s" % (start,limit)
  try:
    cur.execute(sql) # 執行sql語句
    results = cur.fetchall() # 獲取查詢的所有記錄
  except Exception as e:
    raise e
  return render(request,"index.html",{"results":results})

主要是連線資料庫,根據網頁介面輸入的start,limit查詢資料庫記錄,並把記錄返回給頁面輸出

5.建立template\index.html檔案

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <script type="text/javascript" src="/static/js/test.js"></script>
</head>
使用者輸入
<hr>
<form action="/index/" method="post">
 開始: <input type="text" name="start"/><br>
 條數:<input type="text" name="limit"/><br>
<input type="submit" value="提交"><br>
</form>
<hr>
<h1>訪問記錄展示</h1>
<table border="1">
 <thead>
 <th>id</th>
 <th>softid</th>
 <th>visittime</th>
 <th>ip</th>
 </thead>
  <tbody>
  {% for row in results %}
     <tr>
    <td>{{ row.0 }}</td>
    <td>{{ row.1 }}</td>
    <td>{{ row.2 }}</td>
    <td>{{ row.3 }}</td>
  <tr>
{% endfor %}
  </tr>
   </tbody>
</table>
</body>
</html>

該網頁提示輸入引數,並把查詢資料庫結果用表格展示出來,此外,為了測試靜態文件目錄,引入了一個js文件

6.增加static目錄,存放img、css、js等靜態文件

與cmdb同級建立目錄static,目錄下建imgs,css,js三個子目錄

然後修改mysite\setting.py檔案,增加以下內容

# Static files (CSS,JavaScript,Images)
# https://docs.djangoproject.com/en/2.0/howto/static-files/
STATIC_URL = '/static/'
STATICFILES_DIRS=(
os.path.join(BASE_DIR,'static'),)

這樣index.html文件中就可以引用圖片,css,js等靜態文件了

7.重啟django伺服器,在瀏覽器欄輸入

http://127.0.0.1:8000/index/

注意後面/index/不能缺少

如果出現跨域禁止,修改mysite\setting.py,註釋掉以下這行

MIDDLEWARE = [
  'django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware',# 'django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware',]

'django.middleware.csrf.CsrfViewMiddleware',這行註釋掉即可

8.看到成果了

網頁根據你輸入的開始和條數展示資料庫查詢記錄

注意本專案的windowsserver2012上並沒有安裝mysql資料庫,查詢連線的是另外一臺電腦上的linux系統中的mysql.

希望本文所述對大家基於Django框架的Python程式設計有所幫助。