1. 程式人生 > >基於django搭建網站

基於django搭建網站

pan 用戶 目錄結構 配置管理 model ros ger 類名 afa

Django 是由Python開發的一個免費的開源web框架,可以用於快速搭建網站。 ps:web框架,也叫web應用框架,提供數據庫接口,標準樣板,會話管理等來支持網站,網絡應用,服務的開發。 技術分享圖片 技術分享圖片 安裝django 官網https://www.djangoproject.com/download/ 下載安裝包Django-1.9.6.tar.gz tar zxvf Django-1.9.6.tar.gz cd Django-1.9.6 python setup.py install 也可以通過pip直接安裝:pip install django==1.9.6 安裝結束後進入Python交互界面查看成功與否
技術分享圖片 技術分享圖片 開始創建項目 [root@localhost soft]# django-admin startproject mypro 目錄結構 技術分享圖片 技術分享圖片 [root@localhost soft]# cd mypro/ [root@localhost mypro]# ls manage.py mypro [root@localhost mypro]# django-admin startapp app01 [root@localhost mypro]# ls app01 manage.py mypro 技術分享圖片 技術分享圖片 django主要文件: manage.py:配置管理的接口 urls.py:網址入口,關聯到對應的views.py中的一個函數,訪問網址就對應一個函數。
settings.py:配置文件 admin.py:配置後臺管理界面 views.py:處理用戶發出的請求,從urls.py中對應過來, 通過渲染templates中html文件將顯示內容輸出到網頁。 models.py:定義類,每個類對應數據庫中的一張表。 admin.py:配置後臺管理界面 templates文件夾:存放網頁模板 配置數據庫(以mysql為例) [root@localhost mypro]# cd mypro/ [root@localhost mypro]# ls __init__.py settings.py urls.py wsgi.py
編輯settings.py文件 技術分享圖片 技術分享圖片 技術分享圖片 技術分享圖片 加載app: 技術分享圖片 技術分享圖片 啟動服務,可以指定端口,默認監聽本機8000端口, 0.0.0.0代表監聽所有網絡接口和IP地址,即其他電腦都可以訪問 [root@localhost mypro]# python manage.py runserver 0.0.0.0:8000 Performing system checks... System check identified no issues (0 silenced). July 13, 2016 - 07:54:06 Django version 1.9.6, using settings ‘mypro.settings‘ Starting development server at http://0.0.0.0:8000/ Quit the server with CONTROL-C. 技術分享圖片 技術分享圖片 設計model(數據庫表) [root@localhost app01]# vi models.py class Server(models.Model): hostname=models.CharField(max_length=50,unique=True) ip=models.GenericIPAddressField(unique=True) passwd=models.CharField(max_length=20) cpu=models.CharField(max_length=20) disk=models.CharField(max_length=10) memory=models.CharField(max_length=10) os=models.CharField(max_length=20,default=‘CentOS 6.5‘,verbose_name=‘Operation System‘) def __str__(self): return self.hostname 將model註冊到管理頁面 [root@localhost app01]# vi admin.py from django.contrib import admin from app01.models import * # Register your models here. class Server_show(admin.ModelAdmin): search_fields=(‘hostname‘,) # 搜索框 list_display=("hostname","ip","passwd","cpu","disk","memory","os",) #顯示的字段 admin.site.register(Server,Server_show) 同步數據庫,在數據庫中創建對應表 ORM [root@localhost mypro]# python manage.py makemigrations Migrations for ‘app01‘: 0001_initial.py: - Create model Server [root@localhost mypro]# python manage.py sqlmigrate app01 0001 BEGIN; -- -- Create model Server -- CREATE TABLE `app01_server` (`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, `hostname` varchar(50) NOT NULL UNIQUE, `ip` char(39) NOT NULL UNIQUE, `passwd` varchar(20) NOT NULL, `cpu` varchar(20) NOT NULL, `disk` varchar(10) NOT NULL, `memory` varchar(10) NOT NULL, `os` varchar(20) NOT NULL); COMMIT; [root@localhost mypro]# python manage.py migrate Operations to perform: Apply all migrations: admin, contenttypes, app01, auth, sessions Running migrations: Rendering model states... DONE Applying app01.0001_initial... OK 此時同步結束,在數據庫中會生成對應的表,表名為APP的名稱+"_"+類名,會自動增加自增長的id字段,並且設為主鍵,即id=models.AutoField(primary_key=True).若自定義了主鍵,將不會自動添加id列 技術分享圖片 技術分享圖片 表結構與創建model時指定的一樣 技術分享圖片 技術分享圖片 設置後臺管理超級用戶 [root@localhost mypro]# python manage.py createsuperuser Username (leave blank to use ‘root‘): Email address: Password: Password (again): Superuser created successfully. 訪問後臺管理系統 http://10.26.1.254:8000/admin/ 前端也可以顯示 技術分享圖片 技術分享圖片 現在開始前端頁面的編寫 創建模板 [root@localhost mypro]# mkdir templates 在settings.py中定義模板路徑 os.path.join(BASE_DIR, ‘templates‘) 技術分享圖片 技術分享圖片 在templates下創建模板文件index.html 技術分享圖片 技術分享圖片 <!DOCTYPE html> <html> <body> <p> hello world! </p> </body> </html> 創建視圖函數 [root@localhost app01]# vi views.py 技術分享圖片 技術分享圖片 def index(request): return render(request,‘index.html‘) 設置路由 [root@localhost mypro]# vi urls.py 技術分享圖片 技術分享圖片 這樣,一個基於django的MTV模式的網站就搭建起來了。

基於django搭建網站