[举重若轻]python+django+mysql web开发入门学习之hello world
1. 创建项目:
django-admin startproject QASearching
如果系统找不到django-admin.py命令,可以到python的bin目录下查找。这个命令会创建一个项目目录QASearching,它下面的目录详情如下:
├── manage.py
└── QASearching
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
manage.py:包含了所有与项目交互的命令,比较启动服务器、连接数据库、打开shell等功能;QASearching/__init__.py:是项目的初始文件,一开始是一个空的文件;QASearching/settings.py:是项目的配置文件 ,如数据库连接、模板地址等;QASearching/urls.py:是项目的url映射文件,可以指定哪些url由哪些module来处理,类似于apache的httpd.conf文件;QASearching/wsgi.py:Python的web服务器网关服务中间件。
指定ip
vi settings.py
###########
DEBUG=False
ALLOWED_HOSTS=['127.0.0.1','localhost',
]
########
简单测试:
$ python manage.py runserver127.0.0.1:8081
2. 创建APP:
在每个django项目中可以包含多个APP,相当于一个大型项目中的分系统、子模块、功能部件等等,相互之间比较独立,但也有联系。
所有的APP共享项目资源。
在pycharm下方的terminal终端中输入命令:
$ python manage.py startapp mydiary
这样就创建了一个叫做mydiary的APP,django自动生成“mydiary”文件夹。
3. 编写业务处理逻辑
业务处理逻辑都在views.py文件里。编辑mydiary下的views.py
#-*- coding: utf-8 -*-
from __future__ importunicode_literalsfrom django.shortcuts importrender#import HttpResponse
from django.shortcuts importHttpResponse#Create your views here.
defindex(requst):"""不能直接返回字符串,必须由类HttpResponse封装起来,这是django规则,不是python规则"""
return HttpResponse("hello world!")
View Code
4. 编写路由
路由都在urls文件里,它将浏览器输入的url映射到相应的业务处理逻辑
编写项目QASearching下的QASearching目录下的urls.py
#-*- coding:utf-8 -*-
"""QASearching URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/1.11/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.conf.urls import url, include
2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))"""
from django.conf.urls importurlfrom django.contrib importadmin"""导入对应app的views文件"""
from mydiary importviews"""admin后台的路由
+自定义路由"""urlpatterns=[
url(r'^admin/', admin.site.urls),
url(r'^index/', views.index),
]
urls.py
5. 运行web服务
为了使外部网络能够访问,可以编辑 QASearching/QASearching/settings.py添加:
ALLOWED_HOSTS = [
u'192.168.1.103',
u'localhost',
u'127.0.0.1',
]
$ python manage.py runserver 127.0.0.1:8080
6. 连接数据库
django通过自带的ORM框架操作数据库,并且自带轻量级的sqlite3数据库。
在settings.py中注册mydiary应用,数据库能够据此给注册的app应用创建表.
#Application definition
INSTALLED_APPS=['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','mydiary',
]
View Code
在mydiary的models.py中加入类UserInfo
classUserInfo(models.Model):
user= models.CharField(max_length=32)
pwd= models.CharField(max_length=32)
email= models.EmailField()
View Code
在pycharm的teminal中通过命令创建数据库的表了。有2条命令,分别是:
$ python manage.py makemigrations
或者 $ python manage.py makemigrations mydiary
Migrations for 'mydiary':
mydiary/migrations/0001_initial.py
- Create model UserInfo
$ python manage.py migrate
或者 $ python manage.py migrate mydiary
会创建一个mydiary_userinfo表,表中含有models.py中对应UserInfo类成员变量.
创建admin后台管理用户:
$ python manage.py createsuperuser
富文本编辑器tinymce