国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Django(1.7part1)

2019-11-14 17:36:04
字體:
來源:轉載
供稿:網友
  1. django安裝: django解壓后目錄下有一個setup.py文件,在命令行運行python setup.py install,當前前提是已經安裝了python才能執行命令,然后用下面命令檢查django是否安裝成功:
    import djangoPRint(django.get_version())
  2. 創建project: 在命令行進入一個想用來存放project code的目錄,然后運行命令:

    #django-admin.py的路徑如果不在環境變量中,則要打上全路徑django-admin.py startproject mysite

    創建的project目錄結構如下:

    mysite/ #工程根目錄,可以重命名    manage.py #命令行工具,用于與django project交互,是對django-admin.py的輕封裝,每個django           
    # projec都會自動創建它
    mysite/ __init__.py #告訴Python mysite是一個package settings.py #配置django project urls.py #django project中的url wsgi.py #python web server gateway interface,python定義的web服務器與web服務程序或框架通信接口
  3. database setup: 打開settings.py文件,找到Databases變量,默認使用的是python自帶的sqlite db

    DATABASES = {    'default': {        'ENGINE': 'django.db.backends.sqlite3',        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),    }}


    如果使用的是其他數據庫,則需要安裝相應的數據庫包,配置項也要指定一些額外的配置如USER,PASSWord,HOST等,并且db要在數據庫中創建好,如:

    DATABASES = {    'default': {        'ENGINE': 'django.db.backends.postgresql_psycopg2',        'NAME': 'db name',        'USER': 'mydatabaseuser',        'PASSWORD': 'mypassword',        'HOST': '127.0.0.1',        'PORT': '5432',    }}


    如果要使用manage.py自動為model創建表,django必須在數據庫中有相應的權限

  4. settings.py中的TIME_ZONE用于設置時區,INSTALL_APPS表示當前project中激活的django app,哪些模塊不需要刻意去掉,有部分模塊需要使用數據庫表,所以在使用它們前要先調用manage.py migrate命令創建必要的數據庫表。INSTALL_APPS默認包括如下模塊:

    • django.contrib.admin:the admin site

    • django.contrib.auth:an authentication system

    • django.contrib.contenttypes:a framework for content types

    • django.contrib.sessions:a session framework

    • django.contrib.messages:a messaging framework

    • django.contrib.staticfiles:a framework for managing static files

  5. Python自帶了一個development web server,只能用于開發,不能用于生產環境,使用manage.py runserver [port | ip:port]命令啟動.development web server每次請求都會重新調用Python code,所以改動python code不需要重啟web server,但添加文件需要重啟server

  6. project和app的關系:

    • app是一個weba application,實現了某項功能,如log system,poll app等

    • project是一個web站點的一系列配置和apps的集合

    • 一個project可以包含多個apps,一個app可以屬于多個project

  7. 創建modules:在project的目錄下執行如下命令:

    manage.py startapp polls

    會創建一個文件夾polls,也可以在python安裝目錄下的其他目錄創建文件夾,結構如下:

    polls/    __init__.py    admin.py    migrations/        __init__.py    models.py    tests.py    views.py

    創建使用database的web app,第一步就是創建model,在models.py文件里添加繼承自models.Model的類,

    #polls/models.pyclass Question(models.Model):    question_text = models.CharField(max_length=200)    pub_date = models.DateTimeField('date published')class Choice(models.Model):    question = models.ForeignKey(Question)    choice_text = models.CharField(max_length=200)    votes = models.IntegerField(default=0)

    然后通過配置settings.py的INSTALLED_APPS對象把polls app插入到django.這樣django知道包含了polls app

    INSTALLED_APPS = (    'django.contrib.admin',    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.messages',    'django.contrib.staticfiles',    'polls',)

    然后調用manage.py makemigrations polls命令告訴django更改了model(這種情況是添加了新model),要把改動存到migration,migration是存放model改動的磁盤文件,如polls/migrations/0001_initial.py,其內容是一個migration class.使用manage.py sqlmigrate polls 0001可以查看migration執行的sql 命令,只是查看命令并不執行命令。在數據庫中創建model table需要執行manage.py migrate,該命令會對所有未執行migrate的migration執行migrate.django會在數據庫中建一張django_migrations表跟蹤哪些migrate了.總結更改model的三個步驟:

    • 在models.py中更改model

    • 運行manage.py makemigrations為更改創建migration

    • 運行manage.py migrate 數據庫中應用更改

  8. 將models在數據庫中創建后,可以在命令行里操作這些model.啟動命令行要使用manage.py shell而不是用python命令,因為manage.py shell會設置環境變量DJANGO_SETTINGS_MODULE=mysite.settings.py.

    import osprint(os.environ['DJANGO_SETTINGS_MODULE'])#mysite.settings

    之后可以在命令行里操作model,model的改動也可以通過save()函數保存到數據庫中


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 郁南县| 贵州省| 会东县| 邵东县| 富顺县| 岢岚县| 澄城县| 扎兰屯市| 榆树市| 英吉沙县| 商河县| 南京市| 额敏县| 株洲市| 红河县| 金坛市| 龙海市| 平乐县| 赫章县| 汉阴县| 洛扎县| 北海市| 汤阴县| 晋城| 湘西| 神农架林区| 垫江县| 酉阳| 乐业县| 明星| 报价| 张家口市| 华阴市| 广河县| 于都县| 兰坪| 惠来县| 城步| 衡南县| 民乐县| 鹤峰县|