• 一个Django简易项目的操作关键


     建立一个文件夹,控制台定位到该文件夹,

    python -m django --version

    确认Django的版本,

    django-admin startproject trashbin

    建立一个django工程。目录结构图如下:

    trashbin/
        manage.py
        trashbin/
            __init__.py
            settings.py
            urls.py
            wsgi.py

    在manage.py文件的位置,输入

    python manage.py runserver 80

    这样运行一个本地网站,127.0.0.1显示It worked!

    使用PyCharm开发项目。打开PyCharm,打开,文件夹位置定位到manage.py所在的文件夹,这个我们定义为项目的工作目录。

    使用PyCharm的调试器,菜单“run”-》“Edit Configurations”,左侧点击绿色的加号,选择python,Name填写debug-server,右侧Script填写manage.py

    ScriptParameters填写runnserver 80,working directory填写项目的工作目录。

    python manage.py startapp dispatch

    创建一个新的APP,名称叫dispatch

    为dispatch创建一个简单的view,并且使用URL路由。

    在dispatch/views.py文件添加

    from django.http import HttpResponse
    def HelloWorld(request):
        return HttpResponse('Hello,you are at HelloWorld Index Page!1!!!')
    View Code

    dispatch下新建urls.py文件添加

    from django.conf.urls import url
    from . import views
    urlpatterns=[
        url(r'^$',views.HelloWorld,name='hello')
    ]
    View Code

    将工作目录的urls.py修改为如下:

    from django.conf.urls import url,include
    from django.contrib import admin
    
    urlpatterns = [
        url(r'^hello/',include('dispatch.urls')),
        url(r'^admin/', admin.site.urls),
    ]
    View Code

     这样127.0.0.1/hello看到Hello,you are at HelloWorld Index Page!1!!!

    关于URL的正则表达式,参阅如下网站

    http://www.cnblogs.com/chuxiuhong/p/5885073.html
    https://docs.djangoproject.com/en/1.11/topics/http/urls/
    

    默认数据库是sqlite3,这里修改成mysql,注意MySQL建立一个新的数据库的时候,字符集必须使用utf8

    create database django DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

    工作目录中的settings.py文件修改如下:

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'django',
            'USER':'root',
            'PASSWORD':'asweklwfek',
         'HOST':'127.0.0.1',
          'PORT':'3306'
        }
    }
     在__init__文件中添加
    
    import pymysql
    pymysql.install_as_MySQLdb()
    
    注意:生产环境中
    ALLOWED_HOSTS = []修改成
    ALLOWED_HOSTS = ['*']
    View Code

     同时,settings.py中的语言和时区的修改

    LANGUAGE_CODE = 'zh-hans'

    TIME_ZONE = 'Asia/Shanghai'

    ORM的使用

    在APP dispatch的文件models.py中,添加一个类,对应了数据库中的一个表,代码如下

    from django.db import models
    
    # Create your models here.
    class BinStatus(models.Model):
        gps_serial= models.CharField(max_length=50,primary_key=True)
        lng=models.CharField(max_length=50)
        lat=models.CharField(max_length=50)
        full=models.BooleanField(default=False)
        low_bat=models.BooleanField(default=False)
        no_bat=models.BooleanField(default=False)
    models.py

    要激活模型,django会使用settings.py文件中INSTALLED_APPS中的APP

    查看dispatch APP中的app.py文件,可以知道类名是DispatchConfig,所以在INSTALLED_APP中添加

    INSTALLED_APPS = [
    ...
    'django.contrib.staticfiles',
    'dispatch.apps.DispatchConfig'
    ]

    使用命令,告诉系统你要做哪些变动

    python manage.py makemigrations dispatch

    使用命令来应用。

    python manage.py migrate

     为了在admin后台中修改相关数据库,相关的类需要在APP的admin.py文件中注册。

    from django.contrib import admin
    from .models import BinStatus
    # Register your models here.
    admin.site.register(BinStatus)
    register

     然后创建一个后台用户

    python manage.py createsuperuser

    外部调用Django的ORM

    代码如下

    import sys
    import os
    from django.core.wsgi import get_wsgi_application
    sys.path.extend([r'D:pythonWeb	rashbin',])
    os.environ.setdefault("DJANGO_SETTINGS_MODULE","trashbin.settings")
    application = get_wsgi_application()
    from dispatch.models import BinStatus
    print(BinStatus.objects.all())
    外部调用ORM
  • 相关阅读:
    Google Map API Version3 :代码添加和删除marker标记
    ArcGIS Server开发教程系列(8)ArcGIS API for Javascript-控件(小部件)
    ArcGIS Server开发教程系列(8)ArcGIS API for Javascript-控件(小部件)(续)纯代码
    ArcGIS Server开发教程系列(7)使用ArcGIS API for Javascript-Hello World
    ArcGIS Server开发教程系列(3)切片
    3.1、常用图片格式
    【Emmet】HTML速写之Emmet语法规则
    2.11、特征布局实例讲习
    2.10、background属性
    2.9、定位
  • 原文地址:https://www.cnblogs.com/legion/p/7060885.html
Copyright © 2020-2023  润新知