python+Django+pycharm+mysql 搭建首個web項目詳解
本文實例講述了python+Django+pycharm+mysql 搭建首個web項目。分享給大家供大家參考,具體如下:
前面的文章記錄了環(huán)境搭建的過程,本節(jié)記錄首個web項目調(diào)試
首先檢查安裝的模塊,輸入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、然后開始創(chuàng)建項目: 運行PyCharm, 菜單選File->New project 彈出對話框

在對話框中左側(cè)選Django ,項目名稱修改為mysite,點Create按鈕創(chuàng)建
然后點擊運行,即可看到web項目啟動,并提示 Starting development server at http://127.0.0.1:8000/
點擊鏈接即可在瀏覽器看到默認網(wǎng)頁,創(chuàng)建成功
2. 創(chuàng)建APP
在每個django項目中可以包含多個APP,相當于一個大型項目中的分系統(tǒng)、子模塊、功能部件等等,相互之間比較獨立,但也有聯(lián)系。所有的APP共享項目資源。
在pycharm下方的terminal終端中輸入命令:
python manage.py startapp cmdb
這樣就創(chuàng)建了一個叫做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.
# 打開數(shù)據(jù)庫連接
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) # 執(zhí)行sql語句
results = cur.fetchall() # 獲取查詢的所有記錄
except Exception as e:
raise e
return render(request, "index.html", {"results":results})
主要是連接數(shù)據(jù)庫,根據(jù)網(wǎng)頁界面輸入的start,limit查詢數(shù)據(jù)庫記錄,并把記錄返回給頁面輸出
5.創(chuàng)建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>
條數(shù):<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>
該網(wǎng)頁提示輸入?yún)?shù),并把查詢數(shù)據(jù)庫結(jié)果用表格展示出來,此外,為了測試靜態(tài)文檔目錄,引入了一個js文檔
6.增加static目錄,存放img、css、js等靜態(tài)文檔
與cmdb同級建立目錄static,目錄下建imgs,css,js三個子目錄

然后修改mysite\setting.py文件,增加以下內(nèi)容
# 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等靜態(tài)文檔了
7.重啟django服務(wù)器,在瀏覽器欄輸入
http://127.0.0.1:8000/index/
注意后面/index/不能缺少
如果出現(xiàn)跨域禁止,修改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.看到成果了

網(wǎng)頁根據(jù)你輸入的開始和條數(shù)展示數(shù)據(jù)庫查詢記錄
注意本項目的windowsserver2012上并沒有安裝mysql數(shù)據(jù)庫,查詢連接的是另外一臺電腦上的linux系統(tǒng)中的mysql.
希望本文所述對大家基于Django框架的Python程序設(shè)計有所幫助。
相關(guān)文章
Python簡單檢測文本類型的2種方法【基于文件頭及cchardet庫】
這篇文章主要介紹了Python簡單檢測文本類型的方法,結(jié)合實例形式分析了基于基于文件頭及cchardet庫兩種文本類型檢測的方法,需要的朋友可以參考下2016-09-09
淺談tensorflow使用張量時的一些注意點tf.concat,tf.reshape,tf.stack
這篇文章主要介紹了淺談tensorflow使用張量時的一些注意點tf.concat,tf.reshape,tf.stack,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
使用 Supervisor 監(jiān)控 Python3 進程方式
今天小編就為大家分享一篇使用 Supervisor 監(jiān)控 Python3 進程方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12

