python django web项目的构建步骤(一)

简介:

Django

一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的。并于2005年7月在BSD许可证下发布。

1、安装好python django(这步略过,安装过程自行完成,网上安装步骤很多),安装的版本不同而生成的文件目录也不同,这里用的是1.6.5的版本的django;

1
2
[root@node3 ~] # django-admin.py --version
1.6.5

2、创建django项目

1
2
3
4
5
6
[root@node3 python] # django-admin.py startproject mysite2
[root@node3 python] # cd mysite2/
[root@node3 mysite2] # ll
total 8
-rwxr-xr-x. 1 root root  250 Jun  9 22:20 manage.py
drwxr-xr-x. 2 root root 4096 Jun  9 22:20 mysite2

以上的是1.6.5版本生成的一个manage.py和一个目录mysite2,如是1.3.7的版本的话生成的是以下的格式:

1
2
3
4
5
6
7
[root@node1 python] # cd mysite2/
[root@node1 mysite2] # ll
total 16
-rw-r--r--. 1 root root    0 Jun 10 10:19 __init__.py
-rw-r--r--. 1 root root  503 Jun 10 10:19 manage.py
-rw-r--r--. 1 root root 5203 Jun 10 10:19 settings.py
-rw-r--r--. 1 root root  568 Jun 10 10:19 urls.py

3、这里我们还是以1.6.5的版本为例说明问题,如果我们需要连接数据库,那我们需要去修改mysite2文件夹里的settings.py文件;

1
2
3
4
5
6
7
8
9
10
11
12
DATABASES = {
       'default' : {
           'ENGINE' 'django.db.backends.mysql' ,   # 需要连接什么数据库
           'NAME' 'mysite2' # 需要连接的数据库名
           'USERNAME' 'root' ,     # 连接数据库的用户名
           'PASSWORD' 'linux' ,    # 连接数据库的密码
           'PORT' '3306' ,         # 端口
       }
  }
我们还可以改一下时区和使用的语言
LANGUAGE_CODE =  'en-zh'    # 中文
TIME_ZONE =  'Asia/Shanghai'    # 亚洲,上海

4、之后就可以启动django了,切换到manage.py目录文件下,如不写0.0.0.0:8000(监听所有地址),那默认是监听127.0.0.1:8000这个套接字;

1
[root@node3 mysite2] # python manage.py runserver 0.0.0.0:8000

5、然后就可以在页面上访问了,用本机的地址加端口就可以访问:

1
http: //10 .17.1.151:8000/

wKioL1V37bySBlcSAAFK4H3r4GY139.jpg

################  以下是新建一个APP的简单设置步骤  ############

1、使用manage.py创建一个APP;

1
2
3
4
5
6
[root@node3 mysite2] # python manage.py startapp myapp
[root@node3 mysite2] # ll
total 12
-rwxr-xr-x. 1 root root  250 Jun  9 22:20 manage.py
drwxr-xr-x. 2 root root 4096 Jun 10 01:47 myapp
drwxr-xr-x. 2 root root 4096 Jun  9 23:29 mysite2

2、为了使 Django 认识到新应用程序的存在,还需要向 settings.py 文件中的 INSTALLED_APPS 添加一个条目。

1
2
3
4
5
6
7
8
9
INSTALLED_APPS = (
      'django.contrib.admin' ,
      'django.contrib.auth' ,
      'django.contrib.contenttypes' ,
      'django.contrib.sessions' ,
      'django.contrib.messages' ,
      'django.contrib.staticfiles' ,
      'myapp' ,  添加新建的app
  )

3、切换到myapp中,创建一个模型,也就是在moduls.py文件中新建一个类,做个类代表对应数据库中的一张表;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@node3 myapp] # vim models.py
from django.db  import  models
 
class Teacher(models.Model):
     name = models.CharField(max_length=30)
     gender = models.CharField(max_length=5)
     age = models.CharField(max_length=5)
     job = models.CharField(max_length=50)
 
     def __unicode__(self):
         return  "%s, %s, %s, %s"  % (self.name, self.gender, self.age, self.job)
 
class Student(models.Model):
     name = models.CharField(max_length=30)
     gender = models.CharField(max_length=5)
     age = models.CharField(max_length=5)
     course = models.CharField(max_length=50)
 
     def __unicode__(self):
         return  "%s, %s, %s, %s"  % (self.name, self.gender, self.age, self.course)

##  创建完所需要的表之后就可以使用下面命令进行数据库的同步了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@node3 mysite2] # python manage.py syncdb
Creating tables ...
Creating table django_admin_log
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_groups
Creating table auth_user_user_permissions
Creating table auth_user
Creating table django_content_type
Creating table django_session
Creating table myapp_teacher
 
You just installed Django 's auth system, which means you don' t have any superusers defined.
Would you like to create one now? ( yes /no ):  yes
Username (leave blank to use  'root' ):  # admin的用户帐号
Email address: abc@ test .com
Password:  # 这个设置是登录admin是的登录密码
Password (again): 
Superuser created successfully.
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)

##  登录mysql数据库就可以查看到生成的表了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
MariaDB [(none)]> use mysite2;
Database changed
MariaDB [mysite2]> show tables;
+----------------------------+
| Tables_in_mysite2          |
+----------------------------+
| auth_group                 |
| auth_group_permissions     |
| auth_permission            |
| auth_user                  |
| auth_user_groups           |
| auth_user_user_permissions |
| django_admin_log           |
| django_content_type        |
| django_session             |
| myapp_student              |    # 下面这两个是我们需创建的表student和teacher
| myapp_teacher              |
+----------------------------+
11 rows  in  set  (0.00 sec)
 
MariaDB [mysite2]> desc myapp_student;
+--------+-------------+------+-----+---------+----------------+
| Field  | Type        | Null | Key | Default | Extra          |
+--------+-------------+------+-----+---------+----------------+
id      | int(11)     | NO   | PRI | NULL    | auto_increment |
| name   | varchar(30) | NO   |     | NULL    |                |
| gender | varchar(5)  | NO   |     | NULL    |                |
| age    | varchar(5)  | NO   |     | NULL    |                |
| course | varchar(50) | NO   |     | NULL    |                |
+--------+-------------+------+-----+---------+----------------+
5 rows  in  set  (0.10 sec)
 
MariaDB [mysite2]> desc myapp_teacher;
+--------+-------------+------+-----+---------+----------------+
| Field  | Type        | Null | Key | Default | Extra          |
+--------+-------------+------+-----+---------+----------------+
id      | int(11)     | NO   | PRI | NULL    | auto_increment |
| name   | varchar(30) | NO   |     | NULL    |                |
| gender | varchar(5)  | NO   |     | NULL    |                |
| age    | varchar(5)  | NO   |     | NULL    |                |
| job    | varchar(50) | NO   |     | NULL    |                |
+--------+-------------+------+-----+---------+----------------+
5 rows  in  set  (0.00 sec)

4、到这里我们可以通过django的admin管理界面来添加,删除,修改表中的信息,即在myapp目录中的admin.py添加一个class类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@node3 myapp] # vim admin.py
from myapp.models  import  Student, Teacher
class TeacherAdmin(admin.ModelAdmin):
     list_display = (
         'name' ,
         'gender' ,
         'age' ,
         'job' ,
     )
 
class StudentAdmin(admin.ModelAdmin):
     list_display = (
         'name' ,
         'gender' ,
         'age' ,
         'course' ,
     )
 
admin.site.register(Student, StudentAdmin)
admin.site.register(Teacher, TeacherAdmin)

这个保存之后就可以在地址栏中输入http://10.17.1.151:8000/admin来访问到了,在这里就直接可以操作数据库表。

wKiom1V37R_DvAdBAAEkpLVSCdw452.jpgwKioL1V37xmC_TGgAAJcpReuEH4566.jpgwKioL1V37yzRew6xAAFZUWQTDx4261.jpg










本文转自 wei0164 51CTO博客,原文链接:http://blog.51cto.com/tanxw/1660453,如需转载请自行联系原作者
目录
相关文章
|
4月前
|
人工智能 JavaScript API
零基础构建MCP服务器:TypeScript/Python双语言实战指南
作为一名深耕技术领域多年的博主摘星,我深刻感受到了MCP(Model Context Protocol)协议在AI生态系统中的革命性意义。MCP作为Anthropic推出的开放标准,正在重新定义AI应用与外部系统的交互方式,它不仅解决了传统API集成的复杂性问题,更为开发者提供了一个统一、安全、高效的连接框架。在过去几个月的实践中,我发现许多开发者对MCP的概念理解透彻,但在实际动手构建MCP服务器时却遇到了各种技术壁垒。从环境配置的细节问题到SDK API的深度理解,从第一个Hello World程序的调试到生产环境的部署优化,每一个环节都可能成为初学者的绊脚石。因此,我决定撰写这篇全面的实
885 67
零基础构建MCP服务器:TypeScript/Python双语言实战指南
|
4月前
|
机器学习/深度学习 算法 量子技术
GQNN框架:让Python开发者轻松构建量子神经网络
为降低量子神经网络的研发门槛并提升其实用性,本文介绍一个名为GQNN(Generalized Quantum Neural Network)的Python开发框架。
110 4
GQNN框架:让Python开发者轻松构建量子神经网络
|
2月前
|
前端开发 JavaScript 开发者
JavaScript:构建动态Web的核心力量
JavaScript:构建动态Web的核心力量
|
6月前
|
前端开发 算法 API
构建高性能图像处理Web应用:Next.js与TailwindCSS实践
本文分享了构建在线图像黑白转换工具的技术实践,涵盖技术栈选择、架构设计与性能优化。项目采用Next.js提供优秀的SSR性能和SEO支持,TailwindCSS加速UI开发,WebAssembly实现高性能图像处理算法。通过渐进式处理、WebWorker隔离及内存管理等策略,解决大图像处理性能瓶颈,并确保跨浏览器兼容性和移动设备优化。实际应用案例展示了其即时处理、高质量输出和客户端隐私保护等特点。未来计划引入WebGPU加速、AI增强等功能,进一步提升用户体验。此技术栈为Web图像处理应用提供了高效可行的解决方案。
|
3月前
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
754 1
|
5月前
|
数据采集 数据可视化 JavaScript
用Python采集CBC新闻:如何借助海外代理IP构建稳定采集方案
本文介绍了如何利用Python技术栈结合海外代理IP采集加拿大CBC新闻数据。内容涵盖使用海外代理IP的必要性、青果代理IP的优势、实战爬取流程、数据清洗与可视化分析方法,以及高效构建大规模新闻采集方案的建议。适用于需要获取国际政治经济动态信息的商业决策、市场预测及学术研究场景。
|
5月前
|
IDE 开发工具 Python
魔搭notebook在web IDE下,使用jupyter notebook,python扩展包无法更新升级
魔搭notebook在web IDE下,使用jupyter notebook,python扩展包无法更新升级,不升级无法使用,安装python扩展包的时候一直停留在installing
157 4
|
5月前
|
开发框架 JSON 中间件
Go语言Web开发框架实践:使用 Gin 快速构建 Web 服务
Gin 是一个高效、轻量级的 Go 语言 Web 框架,支持中间件机制,非常适合开发 RESTful API。本文从安装到进阶技巧全面解析 Gin 的使用:快速入门示例(Hello Gin)、定义 RESTful 用户服务(增删改查接口实现),以及推荐实践如参数校验、中间件和路由分组等。通过对比标准库 `net/http`,Gin 提供更简洁灵活的开发体验。此外,还推荐了 GORM、Viper、Zap 等配合使用的工具库,助力高效开发。
|
5月前
|
数据采集 Web App开发 自然语言处理
利用Python构建今日头条搜索结果的可视化图表
利用Python构建今日头条搜索结果的可视化图表

推荐镜像

更多
下一篇
oss云网关配置